1. class GirlFriend:
    2. '''这个是男朋友类'''
    3. # 性别女 身高160 体重50kg 会唱歌 会做饭 会写代码
    4. # 属性就是 前3项
    5. sex = '女'
    6. height = 160
    7. weight = '50kg'
    8. def singing(self,songs):
    9. print('女朋友会唱歌,最喜欢唱{}'.format(songs))
    10. @classmethod #类方法 类方法
    11. def cooking(cls,*args):
    12. dishname = ''
    13. for item in args:
    14. dishname += item
    15. dishname += '、'
    16. print('会做饭,擅长做:{}'.format(dishname))
    17. # def cooking1(self,dishnamae1):
    18. # print('最喜欢做{}'.format(dishnamae1))
    19. @staticmethod
    20. def coding(*args):
    21. print('我的女朋友会写代码,而且写的66的,最擅长写java'.format(args))
    22. @classmethod #类方法 类方法
    23. def playbasketball(cls):
    24. return '最喜欢打篮球'
    25. @classmethod
    26. def playpingpang(cls):
    27. print('我女朋友天的性别是:{}'.format(cls.sex)) #类是可以调用属性的
    28. cls().singing('GGGG') #对象方法必须是对象调用 cls..singing('GGGG') 会报错
    29. @staticmethod
    30. def print_self(self):
    31. print('self',self)
    32. print('我女朋友的身高是{}'.format(self.height))
    33. self.cooking('韭菜鸡蛋','蒜黄炒肉') ####对象可以调用类方法
    34. self.coding('ruby') #对象可以调用静态方法
    35. t = GirlFriend()
    36. print(t.sex)
    37. t.singing('两只老虎')
    38. t.coding('java')
    39. # t.cooking('西红柿蛋汤','炒猪肝','红烧排骨','咖喱鸡块')
    40. t.cooking('西红柿蛋汤','炒猪肝','红烧排骨','咖喱鸡块')
    41. res = t.playbasketball()
    42. print(res)
    43. t.print_self()
    44. t.playpingpang()
    45. # 类的概念 比如人类 、鸟类、鱼类 类是一个比较大的概念 而对象是类中具体的某一个个体
    46. # 对象的书写方式 :类名() 比如 t=GirlFriend()就是一个对象 对象可以调用类的属性、方法 对象具有类的所有属性和方法 调用的时候 对象.属性 对象.方法;对象也可以调用类里面的方法和属性
    47. # 万物皆对象 对象肯定是属于某一个类的 -->类可以产生对象
    48. # self就是调用这个方法的本身
    49. # 对象方法:必须是由对象来进行调用 -- 只有它不同!!
    50. # 类方法: 类可以调用 对象也可以调用 @classmethod装饰 方法内的self编程cls
    51. # GirlFriend.cooking()
    52. # GirlFriend().cooking()
    53. # 静态方法:类可以调用,对象可以调用@staticmethod 装饰; self去掉