1.静态方法:
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author:CarsonLi class Dog(object): def __init__(self,name): self.name=name """ 静态方法 只是名义上归类管理, 实际上在静态方法里访问不了类或实例中的任何属性 """ @staticmethod def eat(aaa): print(aaa) d=Dog("小明") d.eat("asdfg")
运行结果:
asdfg
2.类方法:
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author:CarsonLi ''' 类方法 只能访问类变量,不能访问实例变量 ''' class Dog(object): ''' 类方法 只能访问类变量,不能访问实例变量 ''' addr = "深圳" def __init__(self,name): self.name=name @classmethod def eat(self,age): print(self.addr,age) d=Dog("小明") d.eat(25)
运行结果:
深圳 25
3.属性方法:
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author:CarsonLi """ 属性方法 把一个方法变成一个静态属性 """ class Car(object): def __init__(self,name,logo): self.name=name self.logo=logo """属性方法""" @property def drop(self): print("获取速度%s"%self.sudu) """为属性方法设置属性,相当于传值""" @drop.setter def setkm(self,sudu): self.sudu=sudu print("设置速度%s"%self.sudu) """删除属性方法的自己的属性""" @drop.deleter def delkm(self): del self.sudu bmw=Car("华晨马宝宝","BMW") #属性方法中属性的设置 触发@drop.setter bmw.setkm="180" #运行结果:当前速度是180 #属性方法的调用不用括号 bmw.drop #运行结果:180千米每小时 #触发 @drop.deleter del bmw.delkm