对象成员 类成员的操作
- 类
- 对象成员的操作
- 类成员的操作
code:_1oop_grammar.py
# ******************************************************************************
"""
类:
类名命名规范:驼峰命名法
大驼峰:MyCar
小驼峰:myCar
类包含成员变量(属性)和成员函数(方法),类中的属性一般定义在前面,方法一般定义在后面
实例化:一个类可以实例化出多个对象。在实例化对象时,并不会把类中的属性和方法复制一份给对象,而是在对象中引用父类的方法;
因此在访问对象的属性时,会先去找对象自己的属性和方法,没有才去找类的属性的方法。
对象成员的操作:
关于对象属性的操作:
1.访问对象的属性:对象名.属性名,首先访问该对象独有的属性,如果没有,再去访问类相对应的属性。
2.修改对象的属性:对象名.属性名 = 新内容---实际上等于给这个对象创建了该对象自己独有的属性
3.给对象添加属性:对象名.新属性名 = 内容;添加的属性只在本对象有效,对其他对象无效
4.删除对象的属性:del 对象名.属性名---注意只能删除对象自己新添加的属性(包括自己添加的和修改的),类中定义的属性不能删除
关于对象的方法:
1.访问对象的方法:对象名.方法名,首先访问该对象独有的方法,如果没有,再去访问类相对应的方法
2.修改对象的方法:先自定义一个函数,然后再执行 对象名.方法名 = 新函数名---实际上新建了本对象独有的方法,其他对象不能使用
3.给对象添加方法:对象名.新方法名 = 新函数名---实际上新建了本对象独有的方法,其他对象不能使用
4.删除对象的方法:del 对象名.方法名---注意只能删除对象自己新添加的方法(包括自己添加的和修改的),类中定义的方法不能删除
类成员的操作(不推荐也不常用):类的所有增删改都会应用到所有由该类实例化的对象
关于类属性的操作
1.访问类属性:类名.属性名
2.修改类属性:类名.属性名 = 新属性
3.给类添加属性:类名.属性名 = 属性
4.删除类的属性:del 类型.属性名
关于类方法的操作
1.访问类方法:类名.方法名()
2.修改类方法:类名.方法名 = 自定义的新方法名
3.给类添加方法:类名.新方法名 = 自定义的新方法名
4.删除类的方法:del 类名.方法名
self相当于C++中的this。
"""
class Cars:
# 属性
color = "白色"
brand = "奥迪"
pailliang = 2.4
# 方法
def lahuo(self):
print("小车能拉货")
def doufeng(self):
print("小汽车能兜风")
def func():
print("这是一个测试的方法!")
data1 = Cars()
print("实例化对象************************************************************")
print(f"data1 = {data1}")
print("属性*****************************************************************")
print("访问对象的属性*********************************************************")
print(f"data1.color = {data1.color}")
print("修改对象的属性*********************************************************")
data1.color = "蓝色"
print(f"data1.color = {data1.color}")
print("给对象添加属性*********************************************************")
data1.shape = "鼠标型"
print(f"data1.shape = {data1.shape}")
print("删除对象的属性*********************************************************")
del data1.shape # 删除自建的属性
del data1.color # 删除修改的属性
print(f"data1.color = {data1.color}")
print("方法*****************************************************************")
print("访问对象的方法*********************************************************")
data1.lahuo()
print("修改对象的方法*********************************************************")
data1.lahuo = func
data1.lahuo()
print("给对象添加方法*********************************************************")
data1.func1 = func
data1.func1()
print("删除对象的方法*********************************************************")
del data1.lahuo # 删除自建的属性
del data1.func1
data1.lahuo()
print("类属性及方法的增删改查***************************************************")
print("属性*****************************************************************")
print("访问类的属性*********************************************************")
print(f"Cars.color = {Cars.color}")
print("修改类的属性*********************************************************")
Cars.color = "蓝色"
print(f"Cars.color = {Cars.color}")
print("给类添加属性*********************************************************")
Cars.shape = "鼠标型"
print(f"Cars.shape = {Cars.shape}")
print("删除对象的属性*********************************************************")
del Cars.shape # 删除自建的属性
print("方法*****************************************************************")
print("访问类的方法*********************************************************")
Cars.lahuo(self=data1) # 这里一定要提供self的值
print("修改类的方法*********************************************************")
Cars.lahuo = func
Cars.lahuo()
print("给类添加方法*********************************************************")
Cars.func1 = func
Cars.func1()
print("删除对象的方法*********************************************************")
del Cars.func1
运行结果:
E:\Programs_Way\Python\python.exe D:/Prj/_PythonSelf/Object_oriented_programming/_1oop_grammar.py
实例化对象************************************************************
data1 = <__main__.Cars object at 0x000001BB822DFFD0>
属性*****************************************************************
访问对象的属性*********************************************************
data1.color = 白色
修改对象的属性*********************************************************
data1.color = 蓝色
给对象添加属性*********************************************************
data1.shape = 鼠标型
删除对象的属性*********************************************************
data1.color = 白色
方法*****************************************************************
访问对象的方法*********************************************************
小车能拉货
修改对象的方法*********************************************************
这是一个测试的方法!
给对象添加方法*********************************************************
这是一个测试的方法!
删除对象的方法*********************************************************
小车能拉货
类属性及方法的增删改查***************************************************
属性*****************************************************************
访问类的属性*********************************************************
Cars.color = 白色
修改类的属性*********************************************************
Cars.color = 蓝色
给类添加属性*********************************************************
Cars.shape = 鼠标型
删除对象的属性*********************************************************
方法*****************************************************************
访问类的方法*********************************************************
小车能拉货
修改类的方法*********************************************************
这是一个测试的方法!
给类添加方法*********************************************************
这是一个测试的方法!
删除对象的方法*********************************************************
Process finished with exit code 0