魔术方法
特殊属性
查看属性
魔术方法__dir__()返回类或者对象的所有成员名称列表。dir() 函数就是调用__dir__()。
1). 如果dir([obj]) 参数obj包含方法 dir(),该方法将被调用。
2). 如果Obj 不包含 dir(),该方法将最大限度收集属性信息
dir(obj) 对于不同类型的对象obj具有不同的行为:
1.如果对象是模块对象,返回的列表包含模块的属性名和变量名
2.如果对象是类型或者类对象,返回的列表包含类的属性名,及它的基类的属性名
3.如果obj不写 即dir(),返回列表包含内容不同
-
在模块中,返回模块的属性和变量名
-
在函数中,返回本地作用域的变量名
-
在方法中,返回本地作用域的变量名
创建,初始化与销毁
面试常问: python 中__new__ , init , __del__的区别?
1). new的功能是在生成对象之前所做的动作,接受的参数是cls 类, 负责对象的创建
2). init是在对象生成之后完善对象的属性 它接受的是self 对象, 负责对象的初始化
3). 对象生成是在 new 里面 return (返回一个对象)
4). del是在删除对象前自动调用的函数,执行完成后删除对象
可视化
类型判断要使用type或isinstance, 不能通过判断print输出是否带引号来判断输出值的类型。
1). str()与repr()都是python中的内置函数,是直接用来格式化字符串的函
2). 而__str__与__repr__ 是在类(对象)中对类(对象)本身进行字符串处理。
str: 返回一个可以用来表示对象的可打印的友好的字符串
1). 对字符串,返回本身。
2). 没有参数,则返回空字符串
3). 对类,可通过__str__() 成员控制其行为。该成员不存在,则使用其 repr() 成员。
类型转换
索引与切片