'''
类和对象
我懂,但是用起来有点难
类和对象的概念
类:同一类事务的 抽象描述
对象:符合类描述的 具体存在的
功能封装 函数 -
为什么要封装成函数类? ---整体:属性和功能(行为)
首先是 定义类/实现类
生成对象
'''
class 类名(大驼峰):
属性
方法(功能(函数))
self : 是对象本身
实例方法:第一个参数是self
如果想在创建对象的同时,个性化定制对象的属性
初始化:魔法函数 __init__
在你创建对象的同事,自动调用。
类当中可有可无
类属性:直接在类当中定义的,不在任何的实例方法中
类行为:函数加上@classmethod 参数默认为cls cls表示类本身
可以通过cls访问类的属性,但是不能访问实例属性
# 优先用实例属性
实例属性:self.属性名
实例方法:参数第一个是self
实例都是可以访问类属性,类方法的
'''
# 第二种进行了初始化的实例
# 定义类
class Dog: # 类名
# kind = None
# kind = '串串' # 类属性 这样是写死了类属性,不管对象有多少,属性都是这个
kind = '狗' # 类属性 所有的对象都是一样的
# 名字,品种,年龄
def __init__(self, name, age, kind): # 初始化 给了参数
self.name = name # 具体参数
self.age = age # 具体参数
self.kind = kind # 具体参数
@classmethod # 装饰器,声明为类方法
def set_kind(cls): # cls代表当前类,可以访问类属性
print('我是类行为!!!')
print(cls.kind) # 访问类属性
# print(cls.name) # 但是不能访问实例属性
# 叫-方法
def bark(self): # self是对象本身 类方法使用函数
print('汪汪汪汪。。。。')
print(self.name)
# 吃-方法
def eat(self): # 类方法使用函数
print('吃狗粮。。。')
# 跑-方法
def run(self): # 类方法使用函数
print(self.name,'跑起来了。。。') #
# 睡觉-方法
def sleep(self): # 类方法使用函数
print('要睡觉啦')
# 实例化的