1.
类
和函数的定义类似,只是初始化不用return,直接定义__init__函数
对象:类的实例化
2.类的属性
数据属性
函数属性
类和对象均用点来访问自己的属性
print(dir(chinese))打印属性
print(dir(chinese.__dict__))#查看属性字典,查出是一个字典,key为属性名,value为属性值
3.其他属性
#python为类内置的特殊属性
类名.__name__# 类的名字(字符串)
类名.__doc__# 类的文档字符串
类名.__base__# 类的第一个父类(在讲继承时会讲)
类名.__bases__# 类所有父类构成的元组(在讲继承时会讲)
类名.__dict__# 类的字典属性
类名.__module__# 类定义所在的模块
类名.__class__# 实例对应的类(仅新式类中)
类的特殊属性(了解即可)
4.
print(p1.__dict__)
print(p1.__dict__['mingzi'])#等于print(p1.mingzi)
5.类的函数中必须传入self
6.类属性的增加
chinese.dang="gongchand"
类修改了之后,对象可以立即调用
#删除
delete chinese.dang
#类增加函数
def eat_food(self,food)
chinese.eat=eat_food
#类函数的修改
def test(self):
print("test")
chinese.paly_ball=test
p1.play_ball()
#不要修改底层的字典结构
7.加点调用类内部变量
不加点的调用不会在类内部寻找,会到外部寻找
Country="中国----------------"
class Chinese:
Country="中国"
def __init__(self,name):
self.name=name
print("---->",Country)
def play_ball(self,ball):
print('%s 正在打%s' %self.name,ball)
p1=Chinese('alex')
运行时,显示的是
---->中国----------------
因为通过点调用类属性或通过点调用实例属性时,才在类的字典中找,否则是普通变量,
给实例化的数值属性使用append添加值,类中也会添加(day24-8集)