class GirlFriend:
'''这个是男朋友类'''
# 性别女 身高160 体重50kg 会唱歌 会做饭 会写代码
# 属性就是 前3项
sex = '女'
height = 160
weight = '50kg'
def singing(self,songs):
print('女朋友会唱歌,最喜欢唱{}'.format(songs))
@classmethod #类方法 类方法
def cooking(cls,*args):
dishname = ''
for item in args:
dishname += item
dishname += '、'
print('会做饭,擅长做:{}'.format(dishname))
# def cooking1(self,dishnamae1):
# print('最喜欢做{}'.format(dishnamae1))
@staticmethod
def coding(*args):
print('我的女朋友会写代码,而且写的66的,最擅长写java'.format(args))
@classmethod #类方法 类方法
def playbasketball(cls):
return '最喜欢打篮球'
@classmethod
def playpingpang(cls):
print('我女朋友天的性别是:{}'.format(cls.sex)) #类是可以调用属性的
cls().singing('GGGG') #对象方法必须是对象调用 cls..singing('GGGG') 会报错
@staticmethod
def print_self(self):
print('self',self)
print('我女朋友的身高是{}'.format(self.height))
self.cooking('韭菜鸡蛋','蒜黄炒肉') ####对象可以调用类方法
self.coding('ruby') #对象可以调用静态方法
t = GirlFriend()
print(t.sex)
t.singing('两只老虎')
t.coding('java')
# t.cooking('西红柿蛋汤','炒猪肝','红烧排骨','咖喱鸡块')
t.cooking('西红柿蛋汤','炒猪肝','红烧排骨','咖喱鸡块')
res = t.playbasketball()
print(res)
t.print_self()
t.playpingpang()
# 类的概念 比如人类 、鸟类、鱼类 类是一个比较大的概念 而对象是类中具体的某一个个体
# 对象的书写方式 :类名() 比如 t=GirlFriend()就是一个对象 对象可以调用类的属性、方法 对象具有类的所有属性和方法 调用的时候 对象.属性 对象.方法;对象也可以调用类里面的方法和属性
# 万物皆对象 对象肯定是属于某一个类的 -->类可以产生对象
# self就是调用这个方法的本身
# 对象方法:必须是由对象来进行调用 -- 只有它不同!!
# 类方法: 类可以调用 对象也可以调用 @classmethod装饰 方法内的self编程cls
# GirlFriend.cooking()
# GirlFriend().cooking()
# 静态方法:类可以调用,对象可以调用@staticmethod 装饰; self去掉