第三十九节,python内置全局变量
vars()查看内置全局变量
以字典方式返回内置全局变量
#!/usr/bin/env python
# -*- coding:utf8 -*-
print(vars())
#输出
# {'__builtins__': <module 'builtins' (built-in)>, '__spec__': None, '__package__': None, '__doc__': None, '__name__': '__main__', '__cached__': None, '__file__': 'H:/py/index.py', '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000000AC32C66A58>}
__doc__ :获取文件的注释
#!/usr/bin/env python
# -*- coding:utf8 -*-
"""
这里是文件的注释
"""
print(__doc__) #__doc__ :获取文件的注释
#输出
# 这里是文件的注释
__file__ 【重点】获取当前文件的路径
#!/usr/bin/env python
# -*- coding:utf8 -*-
print(__file__) #__file__ :获取当前文件的路径
#输出
# H:/py/index.py
会经常用到__file__ ,一般配合os模块的os.path.dirname(),os.path.basename() ,os.path.join() 模块函数来使用
#!/usr/bin/env python
# -*- coding:utf8 -*-
import os
a = __file__ # __file__全局变量获取当前文件路径
print(a) b = os.path.dirname(a) #获取文件当前目录:注意:os.path.dirname()叠加一次向上找一次 如下
print(b) b2 = os.path.dirname(b) #获取文件当前目录的上级目录,注意:os.path.dirname()叠加一次向上找一次
print(b2) c = os.path.basename(a) #获取文件名称
print(c)
#输出
# H:/py/lib/ska/mk.py
# H:/py/lib/ska
# H:/py/lib
# mk.py
用__file__获取模块路径,添加到解释器模块路径里
#!/usr/bin/env python
# -*- coding:utf8 -*-
import sys
import os
a = __file__ # __file__全局变量获取当前文件路径
print(a)
b = os.path.dirname(a) #获取文件当前目录
print(b)
c = "lib" #自定义文件目录名称
d = os.path.join(b,c) #将获取文件当前目录,与自定义文件目录名称,拼接成完整的路径
print(d)
print("\n") sys.path.append(d) #将拼接好的路径,添加到解释器模块路径中 for i in sys.path: #
print(i)
#输出
# H:/py/index.py
# H:/py
# H:/py\lib
#
#
# H:\py
# C:\Users\admin\AppData\Local\Programs\Python\Python35\lib\site-packages\pip-8.1.2-py3.5.egg
# H:\py
# C:\Users\admin\AppData\Local\Programs\Python\Python35\python35.zip
# C:\Users\admin\AppData\Local\Programs\Python\Python35\DLLs
# C:\Users\admin\AppData\Local\Programs\Python\Python35\lib
# C:\Users\admin\AppData\Local\Programs\Python\Python35
# C:\Users\admin\AppData\Local\Programs\Python\Python35\lib\site-packages
# H:/py\lib
__package__ :获取导入文件的路径,多层目录以点分割,注意:对当前文件返回None
#!/usr/bin/env python
# -*- coding:utf8 -*-
print(__package__) #注意:对当前文件返回None
from lib.ska import mk #导入mk模块文件
print(mk.__package__) #__package__ :获取导入文件的路径,多层目录以点分割,注意:对当前文件返回None
#输出
# None
# lib.ska
# lib.ska
__cached__ :获取导入文件的缓存路径
#!/usr/bin/env python
# -*- coding:utf8 -*-
from lib.ska import mk #导入mk模块文件
print(mk.__cached__) #__cached__ :获取导入文件的缓存路径
#输出
# H:\py\lib\ska\__pycache__\mk.cpython-35.pyc
__name__ 【重点】获取导入文件的路径加文件名称,路径以点分割,注意:获取当前文件返回__main__
#!/usr/bin/env python
# -*- coding:utf8 -*-
print(__name__) #注意:获取当前文件返回__main__
from lib.ska import mk #导入mk模块文件
print(mk.__name__) #获取导入文件的路径加文件名称,路径以点分割
#输出
# __main__
# lib.ska.mk
__name__ 全局变量写在入口文件里,只有执行入口文件时的返回值才是__main__ ,如果入口文件被导入到别的文件里,此时入口文件的__name__返回值就不在是__main__,而是如果文件的路径加入口文件名称,所以我们可以用__name__全局变量来防止别人盗链入口文件
#!/usr/bin/env python
# -*- coding:utf8 -*-
if __name__ == "__main__": #__name__ 全局变量写在入口文件里,只有执行入口文件时的返回值才是__main__ ,如果入口文件被导入到别的文件里,此时入口文件的__name__返回值就不在是__main__,而是如果文件的路径加入口文件名称,所以我们可以用__name__全局变量来防止别人盗链入口文件
print("执行")
#这样只有执行index文件时才执行判断里的,index被导入到到别的文件,就不会执行判断里的
__builtins__ 【重点】内置函数在这里面
第三十九节,python内置全局变量的更多相关文章
- 十九、python内置函数汇总
'''内置函数abs():取绝对值all():每个元素都为真,才是真any():有一个元素为真即为真bin():十进制转二进制hex():十进制转十六进制int():所有的转成十进制oct():十进制 ...
- 第三百三十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—Scrapy启动文件的配置—xpath表达式
第三百三十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—Scrapy启动文件的配置—xpath表达式 我们自定义一个main.py来作为启动文件 main.py #!/usr/bin/en ...
- centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课
centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/ind ...
- python内置全局变量
vars()查看内置全局变量 以字典方式返回内置全局变量 #!/usr/bin/env python # -*- coding:utf8 -*- print(vars()) #输出 # {'__bui ...
- 第三十九篇 Python异常处理
一. 什么是异常 异常就是程序运行时发生的错误,在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止,在python中,错误触发的异常如下 错误分成两种: #语法 ...
- 三十九、python面向对象一
A.python面向对象 1.面向对象基础:面向对象三个特性:封装,继承,多态C# java 只能用面向对象编程Ruby,python 函数+面向对象 函数式编程:def 函数def f1(a): r ...
- 第二百三十九节,Bootstrap路径分页标签和徽章组件
Bootstrap路径分页标签和徽章组件 学习要点: 1.路径组件 2.分页组件 3.标签组件 4.徽章组件 本节课我们主要学习一下 Bootstrap 的四个组件功能:路径组件.分页组件.标签组件 ...
- 第一百三十九节,JavaScript,封装库--CSS选择器
JavaScript,封装库--修改元素选择器 就是将构造库函数修改成元素选择器,像css那样,输入#xxx .xxx xxx (获取指定id下的指定class下的指定标签元素) 修改后的基础库 / ...
- Jmeter(三十九)User.Properties定义全局变量
“烟”从物质上满足吸烟者对尼古丁的依赖,但“烟”更从精神上满足了人们对“思想”的欲望---在抽烟的时刻,每个男人都可能成为思想家. ---<冲突> 前面有记到jmeter读取外部文件内容的 ...
随机推荐
- loadrunner破解方法--lm70.dll,mlr5lprg.dll下载地址
一.由于在压力测试执行中,出现一个-10803的错误 ,为解决这个错误,重新设置的环境变量,在次执行错误,这个问题解决了,但另外一个问题出来了,LR,打开脚本编辑器老提示找不到TEMP目录,当时没有想 ...
- PHP操作Memcache基本函数
Memcache模块提供了于Memcached方便的面向过程及面向对象的接口,Memcached是为了降低动态web应用从数据库加载数据而产生的一种常驻进程缓存产品.Memcache模块同时提供了一个 ...
- PLSQL 几种游标的用法
分类: Oracle 1. PL/SQL里的游标可以分为显式和隐式两种,而隐式有分为select into隐式游标和for .. in 隐式游标两种.所以,我们可以认为,有3种游标用法: A. 显式游 ...
- 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage“提示信息
在安装过vs2015之后出现未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage“提示信息在VS的安装目录下,找到 ...
- express学习点滴- session()和cookieSession()的区别
express 里提供了两种有关session的中间件 * session() 提供了内存和数据库两种方式保存session.具体两种session原理请自行学习,不进行展开了.自己也是一知半解... ...
- 一键批量ping任意ip段的存活主机
=======================by me===================================== @echo offecho.color FC for /f %%i ...
- 第一百零七节,JavaScript基本包装类型,数据类型的方法
JavaScript基本包装类型,数据类型的方法 学习要点: 1.基本包装类型概述 2.Boolean类型 3.Number类型 4.String类型 为了便于操作基本类型值,ECMAScript提供 ...
- Struts2-3.struts.xml的action可以简写
如果只是跳转到某个页面的话,可以这样写 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE s ...
- iOS开发中怎么样使用激光推送
1.注册激光推送的账号 ----> 创建应用 2.上传推送测试和发布的p12文件 注意密码的填写 3.下载sdk并拖进工程里 4.在build setting 搜索search 把路径改一 ...
- GIAC全球互联网架构大会——互联网技术架构未来
GIAC全球互联网架构大会是高可用架构技术社区推出的面向架构师.技术负责人及高端技术从业人员的技术架构大会.中国拥有全球最大的互联网用户及移动互联网用户,如何使用合适的架构来搭建互联网系统,是每一个互 ...