- # 静态属性: 就是数据属性
- # 定义个房间类
- # class Room:
- # def __init__(self,name,owner,width,length,heigh):
- # self.name=name
- # self.owner=owner
- # self.length=length
- # self.width=width
- # self.heigh=heigh
- #
- # r1=Room("房号 1120","zhangshang",10,20,3)
- # print("%s 住的 %s 房子面积是 %s:"%(r1.owner,r1.name,r1.width*r1.length))
- # r2=Room("房号 1130","老王",10,20,3)
- # print("%s 住的 %s 房子面积是 %s:"%(r2.owner,r2.name,r2.width*r2.length))
- #@property 定义个属性, 不让调用看到使用的逻辑
- # class Room:
- # def __init__(self,name,owner,width,length,heigh):
- # self.name=name
- # self.owner=owner
- # self.length=length
- # self.width=width
- # self.heigh=heigh
- # @property# 定义个属性, 不让调用看到使用的逻辑
- # def mianjie(self):
- # return self. width*self.length
- #
- # r1=Room("房号 1120","zhangshang",10,20,3)
- # r2=Room("房号 1130","老王",10,20,3)
- # print(r1.mianjie)# 因为使用了 property 所有看上去像调用类属性, 结果: 200
- # print(r2.mianjie)# 因为使用了 property 所有看上去像调用类属性, 结果: 200
- # print(r1.name)# 调用类的属性, 结果; 房号 1120
- # print(r2.name)# 调用类的属性, 结果; 房号 1130
- # 类来调用自己的方法时使用 @classmethod------ 针对恩赐
- # class Room:
- # tag=1
- # def __init__(self,name,owner,width,length,heigh):
- # self.name=name
- # self.owner=owner
- # self.length=length
- # self.width=width
- # self.heigh=heigh
- #
- # @classmethod# 使用 classmethod 能调用自己的类
- # def tell(cls):
- # print(cls)
- # print("---》",cls.tag)
- #
- # Room.tell()# 调用自己的类, 结果:---》 1
- # 静态方法
- #@staticmethod 当在类下应用 staticmethod 时候, 在下面定义一个函数时, 不会出现 self 和 cls, 静态方法只是名义上的归属管理, 不能使用类变量和实例变量, 石磊的工具包
- class Room:
- tag=1
- def __init__(self,name,owner,width,length,heigh):
- self.name=name
- self.owner=owner
- self.length=length
- self.width=width
- self.heigh=heigh
- @property
- def mianjie(self):
- return self. width*self.length
- @classmethod
- def tell(cls):
- print(cls)
- print("---》",cls.tag)
- @staticmethod# 当在类下应用 staticmethod 时候, 在下面定义一个函数时, 不会出现 self 和 cls, 静态方法只是名义上的归属管理, 不能使用类变量和实例变量, 石磊的工具包
- def test(a,b):
- print("%s %s 正在吃饭"%(a,b))
- Room.test("张三","老王")# 结果: 张三 老王 正在吃饭
来源: http://www.bubuko.com/infodetail-3233126.html