第49天python学习静态属性 静态方法
#静态属性:就是数据属性
#定义个房间类
# 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("张三","老王")#结果:张三 老王 正在吃饭
posted on 2019-10-09 23:16 坚持是多么伟大的事情 阅读(190) 评论(0) 编辑 收藏 举报