(1).在创建类时通过指定metaclass=ABCMeta可以将一个类声明为抽象类
(2).所谓抽象类就是不能创建对象的类 它存在的价值是留给它的子类去继承
(3).经验:我们强烈建议将用来继承的类声明为抽象类
注意:(python语法中是没有真正的抽象类和抽象方法,需要使用abc模块去实现类和方法的抽象)
抽象类:不会使用这个类去对象创建(不会实例化),只是用继承
抽象方法:只声明不实现,只能被继承
ABCMeta -> 抽象类abstractmethod -> 抽象方法
#这样声明一个类就是告诉别人这个类是抽象类,只能继承,不能去创建它的对象 class Shape(object,metaclass=ABCMeta): # 抽象方法继承后必须重写 def area(self): pass class Circl(Shape): def foo(self): pass def area(self): print('aaa') c1 = Circl()
2.内置类属性
python中,系统自动给所有类添加一些类属性,用来获取类的相关信息
例如: 创建一个人类
class Person(): '''人类''' # 类属性 num = 0 # 类方法 def foo(cls): print('人类') def __init__(self, name, age): self.name = name self.age = age def run(self): print('%s跑起来连乌龟都追不上他' % self.name) print(Person) #>>><class '__main__.Person'> # a. 获取类的名字 print(Person.__name__) #>>>Person # b. 获取类的说明文档 print(Person.__doc__) #>>>人类 # c. 获取所有的类相关的内容 print(Person.__dict__) # d. 获取当前类所有的模块名 print(Person.__module__) #>>>__main__ # e. 获取当前类的基类 print(Person.__bases__) #>>>(<class 'object'>,)