# 类的相关知识
# 初识类
# 声明
'''
def functionName(args):
'函数文档字符串'
#函数体
'''
'''
class 类名:
'类的文档字符串'
'类体'
'''
# 我们创建一个类
class Data :
pass
class person:# 定义一个人类
role = 'person' # 人的角色属性都是人
def walk(self): # 人可以走路,也就是有一个走路方法,也叫动态属性
print('person is walking...')
'''
# 类有两种作用:属性引用和实例化
# 1 属性引用(类名.属性)
# 2 实例化
'''
# 1 属性引用(类名.属性)
'''
class Person:
role = 'person'
def walk(self):
print('person is walking...')
print(person.role) # 查看人的role方法
print(person.walk) # 引用人的走路方法,注意,这里不是在调用
'''
# 2 实例化
'''
类名加括号就是实例化,会自动 出发__init__函数的运行,可以用它来为每个实例定制自己的特征
'''
class Person:
role = 'person'
def __init__(self,name):
self.name = name # 每一个角色都有自己的昵称
def walk(self):
print('person is walking...')
print(person.role) # 查看人的role方法
print(person.walk) # 引用人的走路方法,注意,这里不是在调用
# 实例化的过程就是类--》对象的过程
'''
原本我们只有以恶搞Person类,在这个过程中,产生了一个小明对象,有自己具体的名字,攻击力和生命值‘
语法:
对象名 = 类名(参数)
'''
xiaoming = Person('小明') # 类名()就等于在执行Person.__init__(),执行完__init__()就会返回一个对象。这个对象累死一个字典,存着属于这个人本身的一些属性和方法。
# 3 查看属性&调用方法
print(xiaoming.name) #查看属性直接 对象名.属性名
print(xiaoming.walk()) #调用方法,对象名.方法名()
# 4 关于self
'''
self:
在实例化时自动将对象、实例本身传给__init__的第一个参数,
也可以给他起个别的名字,但是正常人不这么做,因为你瞎改别人就不认识
'''
# 5 类属性的补充
'''
一:我们定义的类的属性到底存到哪里了?有两种方式查看
dir(类名):查出的是一个名字列表
类名.__dict__:查出的是一个字典,key为属性名,value为属性值
二:特殊的类属性
类名.__name__# 类的名字(字符串)
类名.__doc__# 类的文档字符串
类名.__base__# 类的第一个父类(在讲继承时会讲)
类名.__bases__# 类所有父类构成的元组(在讲继承时会讲)
类名.__dict__# 类的字典属性
类名.__module__# 类定义所在的模块
类名.__class__# 实例对应的类(仅新式类中)
'''