#类属性包括数据属性和函数属性,类的实例实际却只有数据属性
#函数加括号传的是运行函数,没有括号传的是内存地址
def name():
print('dddd')
print(name) #<function name at 0x01388618>
print(name())
#dddd None
#------------类的增删改查
class Chinese:
country='China'
def __init__(self,name):
self.name=name
def play_ball(self,ball):
print('%s 正在打 %s'%(self.name,ball))
#查
print(Chinese.country)
#改
Chinese.country='Japan'
p1=Chinese('alex')
print(p1.__dict__) #常用内置的方法
print(p1.country) #Japan
#增加
Chinese.dang='GongChangDang'
print(p1.dang) #GongChangDang
def eat_food(self,food):
print('%s 正在吃 %s' %(self.name,food))
Chinese.eat=eat_food #传地址
print(Chinese.__dict__)
p1.eat('ff') #alex 正在吃 ff
#删
del Chinese.dang
del Chinese.country
print(Chinese.__dict__) #常用内置的方法
#------------实例的增删改查
class Chinese:
country='China'
def __init__(self,name):
self.name=name
def play_ball(self,ball):
print('%s 正在打 %s'%(self.name,ball))
#查看实例属性
p1=Chinese('lujiacheng')
print(p1.__dict__) #{'name': 'lujiacheng'}
print(p1.play_ball('Baskball'))
#增加
p1.age=21
print(p1.__dict__) #{'name': 'lujiacheng', 'age': 21}
print(p1.age) #21
静态属性
@property #将一个函数属性隐藏起来
class Room:
def __init__(self,name,owner,width,length,height):
self.name=name
self.owner=owner
self.width=width #静态属性
self.length=length
self.heigth=height
@property # 将一个函数属性隐藏起来
def cal_Area(self):
print ('%s 住的是 %s,总面积是 %s' %(self.owner, self.name, self.width * self.length))
r1=Room('厕所','alex',10,10,10)
r1.cal_Area
#alex 住的是 厕所,总面积是 100
静态方法
@staticmethod #类的工具包,实例不能调用
class Room:
tag=1
def __init__(self,name,owner,width,length,height):
self.name=name
self.owner=owner
self.width=width
self.length=length
self.heigth=height
@staticmethod #类的工具包,实例不能调用
def wash_body(a,b,c):
print('%s %s %s 正在洗澡' %(a,b,c))
Room.wash_body('dvd','dsvfs','dddddsg')
#dvd dsvfs dddddsg 正在洗澡
类方法 (不跟实例绑定在一起)
@classmethod #供类使用的方法,不需实例化
class Room:
tag=1
def __init__(self,name,owner,width,length,height):
self.name=name
self.owner=owner
self.width=width
self.length=length
self.heigth=height
@classmethod #供类使用的方法,不需实例化
def tell_info(cls,name):
print(cls.tag,name)
Room.tell_info('liju') #调用
#1 liju