python cheat sheet

芮学
2023-12-01

__slots__=(),限制可动态绑定的属性

def __str__(self),print的打印方式

def __iter__(self),def next(self),循环调用iter返回迭代对象(可迭代对象iterable与迭代器对象iterator)的next()方法,使类具有类似list/tuple的迭代功能

yield将函数对象变为生成器generator

with语法糖,对象必须有一个enter()方法,一个exit()方法。(with如何工作)

__getitem__(self,),实现下标访问或者切片访问

__getattr__(self,),访问类不存在的属性时调用,可以用来做REST API链式调用

__call__(self),将实例当作函数来调用,通过callable()判断一个对象是否是”可调用”对象

type()函数既可以返回一个对象的类型,又可以创建出新的类型,type(class的名字,(基类,),dict(方法名=函数地址,))

__metaclass__类创建类,从type类继承,重载def __new__(cls,name,bases,attrs)方法

__私有变量名 实际上被转换成了_classname__私有变量名,即无法限制你访问私有成员变量

类属性与实例属性

class S{name='A1'}
S s1
>>>s1.name
>>>'A1'#类属性
>>>s1.name='B1'#实例属性
>>>s1.name
>>>'B1'
>>>del B1.name#删除类属性
>>>B1.name
>>>'A1'#实例属性不存在时,会访问类属性。

为什么会访问到类属性呢?
1.那么Python里的类和其他的对象有什么区别?
实例是对象,因为创建实例的是类.类是对象,创建类的是什么呢?Python给的答案就是元类.你可以通过type()函数来查看它的元类.(type(type)得到的是它自己)
2.Python中属性查找机制

python调试方法
1.try...except...else...finallyexcept相当于elif所以碰到一个满足条件的后面的except就会被屏蔽,而且子类错误对象可以被父类except接收,但是父类错误对象则不会被子类接收。
2.assert True,'xxx'断言执行结果与True的内容是否相符,不符合则打印‘xxx’。好处是可以在运行时选择关闭assert,避免了一行行删除print语句
3.logging定义出错记录位置,可以自定义记录哪些等级的错误信息。
4.pdb

 类似资料:

相关阅读

相关文章

相关问答