class BoyFriend:
# 类属性
weight=140
money="500万"
def __init__(self,name,height):#初始化函数(实例方法)
self.name=name
self.height=height
# 类方法/函数 【自动给补齐了一个self self是实例本身 固定的占位符】
def cooking(self):#会做饭 #实例方法
print(self.name+"会做饭",self.height)
@classmethod #类方法
def swimming(cls): #cls 类本身
print("会有赢")
@staticmethod #静态方法
def sing():
print("唱歌")
一、类里面的方法分为三种:
1、实例方法:函数中第一个参数是self,意味着这个方法只能实例调用
BoyFriend().earn() #实例方法的调用 隐式的传递 需要先创建实例
BoyFriend.earn("cd") #显示的传递
2、类方法:@classmethod
BoyFriend.swimming() #类方法的调用 创不创建实例都可以调用
BoyFriend().swimming() #实例和类名都可以调用
3、 静态方法:@staticmethod #实例和类名都可以调用
BoyFriend.sing()
BoyFriend().sing()
二、三种方法的区别:
1、相同点:实例方法(self)、类方法(cls)、静态方法(普通方法):实例和类名都可以直接调用
2、不同点:静态方法和类方法不可以调用类里面的属性值,如果要参数,请自己传递参数
3、什么时候去定义为静态方法和类方法:当你的某个函数与其它的类函数、类属性没有关系时,就可以定义为静态方法或者类方法
三、初始化函数 def init(self) 【如果某个属性值是多个函数共用的,就可以用初始化函数】
b1=BoyFriend("哈哈","110")
b1.cooking()