Python下划线
Python下划线
标识符是用来标识别某种对象的名称。以下划线的标识符是有特殊意义的
制作包与模块
1包code:_init_py,model.py,_model.py
2.文件内容:print("我是xxx.py")
3.包code:_init_.py,model.py,_model.py
4.model.py文件内容
下划线
下划线的特殊含义(模块)
1.以单下划线开头的(_foo)
表示保护对象,不能用from xxx import*导入包/模块
2.以双下划线开头的(__foo)
表示私有对象,不能用from xxx import*导入包/模块
3.以双下划线开头和结尾的(__foo__)
代表Python中特殊方法专用的表示,不建议用户使用这种命名方法
初始化文件:init.py
1.__init__.py文件是一个初始化文件,一般导入包里的文件,
都会先执行__init__.pu文件
2.可以用于初始化数据库链接
(与数据库连接时可以将一些初始化命令放入)
进行模糊导入的时候,默认是识别不了下划线开头的变量
from code.model import *
print(a) #不会报错
print(_a) #会报错
func() #不会报错
_func() #会报错
在code下面的_init_.py中__all__的作用:
用来做模块导入时的模糊配置
__all__ = ["model","_model"]
该句中[]里的指定的是什么模块,
from code import *中的*导入的就是什么模块
以双下划线开头和双下划线结尾的变量,类,函数,
模块这些都是有特殊含义的,标识符名命名,
尽量不要以双下划线开头或结尾
name
__name __是Python中的一个特殊的内置变量
当这个模块是直接运行的时候__name__就是__main__
当这个模块作为导入运行的时候,__name__就是当前模块导入的绝对路径
model.py中
print(f"__name is {__name__}"")
mod.py中:
from code import model
结果
__name__ is code.model