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
#!/usr/bin/env python
# -*- coding:utf8 -*-
if __name__ == "__main__":
#__name__ 全局变量写在入口文件里,只有执行入口文件时的返回值才是__main__ ,如果入口文件被导入到别的文件里,此时入口文件的__name__返回值就不在是__main__,而是如果文件的路径加入口文件名称,所以我们可以用__name__全局变量来防止别人盗链入口文件
print("执行")
#这样只有执行index文件时才执行判断里的,index被导入到到别的文件,就不会执行判断里的
__builtins__ 内置函数在这里面
python内置全局变量的更多相关文章
- 第三十九节,python内置全局变量
vars()查看内置全局变量 以字典方式返回内置全局变量 #!/usr/bin/env python # -*- coding:utf8 -*- print(vars()) #输出 # {'__bui ...
- python 内置函数和函数装饰器
python内置函数 1.数学相关 abs(x) 取x绝对值 divmode(x,y) 取x除以y的商和余数,常用做分页,返回商和余数组成一个元组 pow(x,y[,z]) 取x的y次方 ,等同于x ...
- Python内置函数解析
我们知道,为了方便使用,python内置了一系列常用及关键的函数,如type().下面将对这些函数进行逐一分析.解释. Python内置函数表: 1. abs():返回绝对值.如abs(-1)= 1. ...
- python内置函数的归集
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明. Python内置(built-in)函数随着python解释器的运行而创建.在Pytho ...
- Python补充03 Python内置函数清单
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明. Python内置(built-in)函数随着python解释器的运行而创建.在Pytho ...
- Python 内置函数笔记
其中有几个方法没怎么用过, 所以没整理到 Python内置函数 abs(a) 返回a的绝对值.该参数可以是整数或浮点数.如果参数是一个复数,则返回其大小 all(a) 如果元组.列表里面的所有元素都非 ...
- 【转】python 内置函数总结(大部分)
[转]python 内置函数总结(大部分) python 内置函数大讲堂 python全栈开发,内置函数 1. 内置函数 python的内置函数截止到python版本3.6.2,现在python一共为 ...
- 【转】Python 内置函数 locals() 和globals()
Python 内置函数 locals() 和globals() 转自: https://blog.csdn.net/sxingming/article/details/52061630 1>这两 ...
- python内置函数,匿名函数
一.匿名函数 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数 def calc(n): return n**n print(calc(10)) #换成匿名函数 calc = lambda n ...
随机推荐
- 异步编程when.js
when.js很小,压缩后只有数kb,gzip后的大小几乎可以忽略.在Node和浏览器环境里都可以使用when.js 首先,我们看一小段代码: var getData = function(callb ...
- PHP 下基于 php-amqp 扩展的 RabbitMQ 简单用例 (三) -- Header Exchange
此模式下,消息的routing key 和队列的 routing key 会被完全忽略,而是在交换机推送消息和队列绑定交换机时, 分别为消息和队列设置 headers 属性, 通过匹配消息和队列的 h ...
- ms_sql 触发器记录表字段数据变化的日志 -针对一张表操作
create table sto (id int not null, -- 主键字段 de datetime -- 被跟踪的字段 constraint pk_sto primary key(id)) ...
- vue props传值方法
<template> <div class="hello"> <ul> <li v-for="(item, index) in ...
- 分布式集群环境下运行Wordcount程序
1.分布式环境的Hadoop提交作业方式与本地安装的Hadoop作业提交方式相似,但有两点不同: 1)作业输入输出都存储在HDFS 2)本地Hadoop提交作业时将作业放在本地JVM执行,而分布式集群 ...
- Buffer.from()
Buffer.from(array) array {Array} 使用一个8位字节的数组分配一个新的 Buffer. const buf = Buffer.from([0x62, 0x75, 0x66 ...
- Matlab学习笔记(一)
一.MATLAB概述 (一)运行环境 命令行窗口(Command Window) 表 1-1 数据显示格式设置(e_one_1.m) 格式 实例 说明 format short 3.1416 小数点后 ...
- C++ 类 直接定义对象与new对象的区别
new创建类对象与直接定义的区别 new创建对象的特点 new创建类对象需要指针接收,一处初始化,多处使用 new创建类对象使用完需delete销毁 new创建对象直接使用堆空间,而局部不用new定义 ...
- 我们参与投资36Kr股权众筹项目“易途8”的决策过程
背景 中文接机.中文送机.中文包车. 当地玩乐 最大的竞争对手:皇包车,15年9月A轮 其它对手:唐人接等,订单量无法和 皇包车.易途8比. 看好理由 1.旅游行业和境外自由行,是 ...
- jQuery学习之------对标签属性的操作
jQuery学习之------标签的属性 <a href=””>链接</a>此处的href就是该a标签带有的属性 在js中对标签的属性的操作方法有 1.1getAttribut ...