类与对象
class 命名规范:首字母大写 驼峰命名 见名知意。类的概念 :具有某一类共同属性和特性的事物,类一般包含 属性以及方法
1 class Teacher: 2 name="哒哒" 3 age="23" 4 5 def coding(self): # 实例方法(self):意味着这个方法只能实例来调用 6 print(self.name+"会敲代码") 7 8 def cooking(self):#实例方法 9 print(self.name+"会做蛋炒饭") 10 11 @classmethod # 类方法(cls):不可以调用类里面的属性值 如果你要参数 请自己传递参数 12 def swimming(cls): 13 print("老师还要会游泳") 14 15 @staticmethod # 静态方法(普通函数):不可以调用类里面的属性值 如果你要参数 请自己传递参数 16 def sing(): 17 print("要会唱歌表演给学生看") 18 19 t=Teacher()#实例 隐式的传递 20 t.cooking() # 返回“哒哒会做蛋炒饭” 21 Teacher.coding(t)#显式的传递 不建议使用 22 Teacher.cooking() #没有实例化报错 missing 1 required positional argument: ‘self‘,正确应该是Teacher().cooking() 23 #类方法:@classmethod 24 Teacher.swimming() # 返回“老师还要会游泳” 25 t.swimming() # 返回”老师还要会游泳“ 26 #静态方法:@staticmethod 27 Teacher.sing() # 返回“要会唱歌表演给学生看“ 28 t.sing() # 返回”要会唱歌表演给学生看”
类里面方法是分为三种,实例方法self 类方法cls 静态方法(普通方法)
实例和类名都可以直接调用;不同点: 静态方法和类方法 不可以调用类里面的属性值,如果你要参数请自己传递参数。什么时候去定义为静态和类方法?当你的某个函数与其他的类函数 类属性 没有半毛钱关系就可以定义为静态方法和类方法
1 class Teacher: 2 def __init__(self, age=23): # __init__初始化函数没有return 返回值,实例方法一般不传动态参数和关键字参数, 3 self.age = age 4 self.height = 180 5 6 def cooking(self): 7 print("%s岁的老师还要会做饭" % self.age) 8 9 @classmethod # 类方法 10 def swimming(cls): 11 print("老师还要会游泳") 12 13 @staticmethod 14 def sing(name): # 普通函数 15 print("要会唱{0}歌".format(name)) 16 17 Teacher(40).cooking() # “40岁的老师还要会做饭” 18 Teacher().swimming() # ”老师还要会游泳“ 19 Teacher().sing("好听的") # ”要会唱好听的歌“
原文地址:https://www.cnblogs.com/monica711/p/9857733.html
时间: 2024-10-11 21:05:55