面向对象方法与调用
从类名的角度使用类
类名调用类中的属性和方法
注意 类名调用了方法必须穿参 不然报错 类名可以对类中的属性 方法增删改查
class A:
hoppy='玩'#静态属性
def __init__(self,name):#双下方法
self.name=name#属性
def func(self):#方法
print(666)
# 1. 查看类中的所有的内容. 类名.__dict__只用于获取类中的全部.
# print(A.__dict__)
# print(A.__dict__['hoppy'])
# 2. 万能的 .点.
print(A.hoppy) # 查
A.func(1)
A.cloth = '校服' # 增
# print(A.__dict__)
A.examination = '不考试!' # 改
# del A.hoppy # 删
del A.func # 删
# print(A.__dict__)
实例化对象的过程
1. 利用父类__new__ 在内存中创建一个对象空间.
2. 自动执行__init__方法,并且将对象空间传给self参数.
3. 执行__init__方法里面的代码,给对象空间封装其属性.
从对象的角度使用类
对象调用对象的属性和方法
对象可以操作对象空间的属性 万能的点 进行增删改查
class Student:
daily = '学习'
examination = '考试'
def __init__(self,n,a,h):
self.name = n
self.age = a
self.hobby = h
def work(self,c):
self.color = c
print(f'{self.name}每天要上课')
def homework(self):
print('家庭作业')
mc_sq = Student('骚强',18,'高端会所') # 类名() 过程就叫做实例化过程,实例化一个对象
mc_sq.age = '29' # 增
del mc_sq.n # 删
mc_sq.sex = '女'# 改
print(mc_sq.n) # 查
print(mc_sq.__dict__)
# 对象查看类中的属性.
# mc_sq = Student('骚强',18,'高端会所')
# # print(mc_sq.daily)
# mc_sq.daily = '骚麦'
# print(mc_sq.daily)
# print(mc_sq.__dict__)
# 对象调用类中的方法
mc_sq.homework()
对象查看类中的属性.但是不可以修改
面向对象中的self是什么
什么是self?
# self 就是类中方法的第一个位置参数,
# 如果通过对象执行此方法,解释器就自动的将此对象空间当做实参传给self.
# 约定俗称: 类中的方法第一个参数一般都设置成self.
# 一个类可以实例化多个对象
无数个
从空间角度研究类
1.类外面可以给对象封装属性
2.类内部封装属性
3.对象如果修改 父类属性 其实就是给自己空间增加这个属性
引用方式的路径
对象如果查询一个属性: 对象空间 ----> 类空间 ----> 父类空间 --->
类查询一个属性: 类空间 ----> 父类空间 ---->
单向不可逆
对象与对象之间原则上互相独立(除去组合这种特殊的关系之外).
非学,无以致疑;非问,无以广识