# Python 类的语法 关键字 class
# class 类名:# 类名的规范是 数字字母下划线组成 不能以数字开头 首字母大写 驼峰命名(不同单词的首字母大写)
# 类属性
# 类方法
# 如:class TestResult
class BoyFrend:
# 类属性
height=175
weight=130
money="300万"
#实例方法
def cooking(self):#self 只是固定的占坑符 类里面的方法 都必须带self这个参数
print(self.name+"要会做饭") # 实例方法可以调用类里面的属性值
@classmethod # 类方法
def swimming(cls0):
print("要会游泳")
@staticmethod # 静态方法 不需要传入参数
def eating(): #相当于普通函数
print("会吃")
# 实例/对象 具体的一个例子 类名()
# bf=BoyFrend()
# print(bf)
# BoyFrend.cooking() #直接调用会报错 TypeError: cooking() missing 1 required positional argument: 'self'
t=BoyFrend() # 隐式的传递
t.cooking()
BoyFrend.cooking(t) # 显示的传递 不建议使用
BoyFrend.swimming() # classmethod 不需要传递实例
# 1. 实例方法加self 类方法加cls 静态方法(普通方法,不需要加任何) 实例和类名都可以直接调用
# 2. 不同点:静态方法 和 类方法 不可以调用类里面的属性值 如果你要参数 请自己传递
# 3. 什么时候去定义静态方法和类方法 当你的某个函数与其他的类函数 类属性没有一点关系时可以定义
# 实例具有类里面的所有属性和方法的使用权限
# 调用属性 实例名.属性名
# 调用方法/函数名:实例名.方法名()
初始化函数
初始化函数,可以放置超多属性,如果某个属性值是多个函数共用的,就可以使用初始化函数
函数语法:
def __init__(self,name,age):# 初始化函数,可以放置很多属性
self.name=name
self.age=age
众多调用实例:
class teacher:
def __init__(self,name,age):# 初始化函数,可以放置很多属性
self.name=name
self.age=age
def swiming(self):
print(self.name+"会游泳,他今年"+self.age+"岁")
def coding(self,lines,language="Python"):#位置参数要放在默认参数之前
print(self.name+"会敲{0}代码,写了{1}行代码".format(language,lines))
def cooking(self0,*args):# 动态参数
for item in args:
print(self0.name+"会做{0}".format(item))
def play_game(self,game_name):
return (self.name+"会玩{0}".format(game_name))
t1=teacher("小红","23") # 创建小红老师
t2=teacher("小白","21") # 创建小白老师
t1.swiming()
t2.coding(100) # 传入位置参数
t2.cooking("蛋炒饭"",西红柿炒鸡蛋") # 传入动态参数
print(t1.play_game("英雄联盟")) # return的语句,需要print才可以看到
运行结果: