1、类对象:类名 实例对象:由类创建的对象
2、静态属性(和实例有关,可以访问实例属性和类的属性)(将类的函数属性封装成 数据属性的形式,让外界无法知道你的内部逻辑)
class Room:
def __init__(self,name,width,length):
self.name = name
self.width = width
self.length = length
@property
def cal_area(self):
#print('%s 家的面积为 %s'%(self.name,self.width*self.length))
return self.width*self.length
s1 = Room('aaa',20,20)
s2 = Room('bbb',30,30)
#正常调用
# print(s1.cal_area())
# print(s2.cal_area())
#加 @property 调用
print(s1.cal_area) #--->此刻封装成 数据属性的形式,外界无法知道你的内部逻辑
print(s2.cal_area)
类方法(和类有关,可以让类调用其函数属性而不用传 self实例,无法访问实例属性)
class Room:
tag = 1
def __init__(self,name,width,length):
self.name = name
self.width = width
self.length = length
#定义类方法,为了可以让类调用其函数属性而不用传 self实例,实例正常调用
@classmethod
def tell_info(cls,x):
print(cls)
print('--->>',cls.tag,x)
#调用类变量
print(Room.tag)
#一般调用函数属性
# r1 = Room('abc',10,10)
# Room.tell_info(r1,'bbb')
#加 @classmethod 直接用类调用其函数属性
Room.tell_info('aaa')
静态方法(与类和实例无关,是类的工具包,和正常函数差不多,只不过名义上归属类管理,可以使用类名进行访问)
class Room:
def __init__(self):
pass
@staticmethod
def test(a,b,c):
print('%s 和 %s 一起 %s'%(a,b,c))
Room.test('aa','bb','play')