Python面向对象的基本实现

对象成员 类成员的操作

  • 对象成员的操作
  • 类成员的操作

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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jasmine-Lily

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值