一、类方法
类方法:把类看作成一个对象 #语法: #@classmethod----由@开头的叫做装饰器或者修饰器 #def 类方法名(cls,形参):
类方法可以直接使用----->类对象.类方法名()
class People02: def __init__(self,name,age): self.name=name self.age=age @classmethod#只针对下面第一个方法生效 def say(cls):#类方法第一个形参一般习惯用cls,代表类本身 print('这是一个类方法') @staticmethod#静态方法 # 此方法是一个独立的方法且与类无关,只是存放在类中(第一个参数没变色可以看出与该类无关) #调用静态方法:类名.静态方法名()或者对象名.静态方法名() def add_function(self,num1,num2): return num1+num2 # People02.say()#类方法可以直接使用----->类对象.类方法名() # lss2=People02('刘思',200) # lss2.say()#对象.类方法名
二、内置属性
1.__dict__:类的属性(包含一个字典,由类的数据属性组成)
2.__doc__ :类的文档字符串
3.__name__: 类名
4.__module__: 类定义所在的模块(类的全名是'__main__.className', 如果类位于一个导入模块mymod中,那么className.__module__ 等于mymod)
5.__bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)
class People01: class_name='人类'#类属性--->写在类下面的属性 def __init__(self,name,age): self.name=name self.age=age def __say(self,content): print('{}说:{}'.format(self.name,content)) lss1=People01('思思',25) # lss1._People01__say('xxxxxxx')#对象名._类名__私有方法名(实参) #在类的内部可以直接使用,在类的外部:对象名._类名__私有方法名(实参)
三、内置方法(统自带内置方法--在Python中有一些内置的方法,这些方法命名都有比较特殊的地方)
# (其方法名以2个下划线开始然后以2个下划线结束)
1.__init__(self,....): 构造方法,给对象的属性进行初始化赋值使用的,且他是类里面第一个被自动执行的内置方法,构造方法支持重载,如果用户自己没有重新定义构造方法,系统就自动执行默认的构造方法。
2、__del__(self ):析构方法,在释放对象时调用,支持重载,可以在里面进行一些释放资源的操作,不需要显示调用。
3、__str__(self,...):自定义实例输出方法,写好该方法后,替换实例默认的输出操作。
4、__add__(self,...):两个相同类的对象进行运算
5、__getattribute__(...):获取实例属性的值,可直接结合对象使用。
class People03: def __del__(self):#析构方法 print('最后执行,删除属性,释放内存') def __init__(self,name):#构造方法 self.name=name print('先执行,新建属性') def __str__(self):#自定义对象的输出内容----替换默认输出的内容 return 'lllll' def __add__(self, other): return self.name+other.name#这里的+代表运算符,还可以是*乘法/整除%取模等 # xx=People03('思思') # xx1=People03(2) # xx2=People03(5) # print(xx) # print(xx.name) # print(xx.__getattribute__('name'))#和print(xx.name)用法差不多,都是获取实例属性值 # print(xx1 + xx2)#这里的+号不代表相加而是代表调用add方法---怎么运算就看add方法里面是什么方法