类的特殊方法:
__doc__: 类的描述 print(__doc__)可查看描述的类信息
__module__ 输出模块路径,从哪个模块导入
__class__ 输出对象属于哪个类
__call__ 对象后面加括号直接可触发执行方法,可传参或类名()()也可触发执行
__dict__ 打印类中所有属性,不包括实例属性
__str__ 如果定义该方法,打印对象、时默认输出方法返回值
type()查看当前元素类型,类就是用type封装建造的
type() 函数如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象。
用type创建类:
可以通过type赋值创建一个类,并创建实例,
class type(name, bases, dict)
参数
name -- 类的名称。
bases -- 基类的元组。
dict -- 字典,类内定义的命名空间变量。
示例:
def aaa(self): #创建一个函数 实例调用方法时必须有self ,所以参数要写self
pass
FOO=type("foo",(object,),{"bbb":"aaa"}) #object 可以不写,写了一定要带逗号,以字典的形式写入健:实例要调用的名称,值:函数方法名
#属于创建了一个FOO的类
f=FOO()
#创建了FOO的实例
f.bbb()
#默认调用健名对应的值中函数的方法
isinstance() 函数来判断一个对象是否是一个已知的类型,如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。
isinstance(object, classinfo)
参数
object -- 实例对象。
classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。
type()与isinstance()的区别:
共同点:两者都可以判断对象类型
不同点:对于一个 class 类的子类对象类型判断,type就不行了,而 isinstance 可以。
type()不会认为子类是一种父类类型,不考虑继承关系
isinstance()会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。