1、Python中__init__.py的作用
如果你是使用python的相关IDE来进行开发,那么如果目录中存在该文件,该目录就会被识别为 module package 。init.py 在包被导入时会被执行,我们通过__all__变量设置需要导入的模块。
2、Python中的__all__变量
all 变量的值是一个列表,存储的是当前模块中一些成员(变量、函数或者类)的名称。通过在模块文件中设置 all 变量,当其它文件以“from 模块名 import ”的形式导入该模块时,该文件中只能使用 all 列表中指定的成员,未指定的成员是无法导入的。
3、Python中的args和kwargs
*args和kwargs是python的动态参数,其中args 是 arguments 的缩写,表示位置参数;kwargs 是 keyword arguments 的缩写,表示关键字参数。动态参数,必须放在所有的位置参数和默认参数后面,并且 *args 必须放在 **kwargs 的前面,因为位置参数在关键字参数的前面。
4、在from…import…过程中,函数装饰器会执行,装饰这个类。
#__init__.py文件y的作用是让一个呈结构化分布(以文件夹形式组织)的代码文件夹变成可以被导入import的软件包。
from .checkpoint import CheckpointHook #其中的.表示当前包
#checkpoint.py
@HOOKS.register_module()
class CheckpointHook(Hook):
5、getattr() 函数用于返回一个对象属性值。
getattr(object, name[, default])
#object -- 对象。
#name -- 字符串,对象属性。
#default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。
#object->类,name->类的函数名
6、assert expression
用于判断一个表达式,在表达式条件为 false 的时候触发异常,断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况.
7、python中如何判断一个变量在使用之前是否声明:
if not para:
raise ValueError('Please set the para ')
8、python格式化时间字符串
import datetime
print(datetime.datetime.now().strftime('%Y%m%d'))
#YYYYmmdd-20220321
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
#2022-03-21 22:25:34
9、Python中__str__,__dict__和__name__的作用
如果一个类中定义了__str__方法,在打印对象时,默认输出该方法的返回值,没有定义会返回对象的地址
__dict__查看类或对象中的所有成员
name 类名或者函数名
class People:
def __init__(self, name):
self.name = name
def __str__(self):
return 'People:' + self.name
pass
pp=People('lily')
print(People.__name__)
print(People.__str__.__name__)
print(pp.__dict__)
print(pp)#=print(pp.__str__)
#输出
#People
#__str__
#{'name': 'lily'}
#People:lily