# @remark:类与对象
""""""
"""一、类的定义
class 关键字
class 类名(父类名):
'''类的帮组信息'''
属性:类中方法外定义的变量,名称或形容词,实例的状态或者数据
方法:类体中定义的函数,与函数一致,可以有参数列表和返回值。动词
"""
#1、实例
#类的声明 不传则默认父类是超类object
class Human:
"""人类"""
#定义属性(类属性)
message="这是类属性"
#构造方法 -自动执行,直接返回该类的实例,如果不行则默认创建一个构造方法
def __init__(self,name,age):
# 实例属性(变量)
self.name=name #通过self绑定到自身
self.age=age
print("这是构造方法")
print(Human.message) #这是类属性
"""二、类的方法
1)实例方法
-构造方法
2)类方法
3)静态方法"""
"""三、构造方法与实例化
作用:实例化对象
语法:def __init__(self,参数列表)
访问:类名(参数列表)"""
#实例化对象
person=Human("yanfa",18) #这是构造方法
#通过实例访问类属性
print(person.message) #这是类属性
#通过实例访问实例属性
print(person.name) #yanfa
print(person.age) #18
"""四、实例方法
作用:提供每个类的实例共享的方法
语法:def 方法名(self,参数列表)
访问:实例.方法名(参数列表)"""
# @remark:实例方法
class Human:
# 实例方法
def study(self,course):
print(f"正在学习{course}")
person=Human()
person.study("python") #正在学习python
"""五、类方法
作用:可以操作类的详细信息,不需要实例化
语法:@classmethod
访问:类名.类方法名(参数列表)"""
# @remark:类方法
class Human:
# 类属性
pop = 0
# 类方法 可以操作类的详细信息
@classmethod # 只能用这个装饰器
def born(cls): # cls是class的简写,是指类名本身
print("这是类方法")
cls.pop += 1
# 通过类名访问类方法
Human.born() # 这是类方法
print(Human.pop) # 1
"""六、静态方法
作用:不需要实例化对象
语法:@staticmethod
访问:类名.静态方法名()"""
# @remark:静态方法
class Human:
# 定义静态方法
@staticmethod
def grow_up():
print("这是静态方法")
#访问静态方法
Human.grow_up() #这是静态方法