Python笔记,模块与包中的下划线,初始化文件__init__.py以及__name__

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值