对象成员的操作

什么是成员对象

  • 一个对象通过实例化后,那么在类中定义的属性和方法,可以使用实力化的对象进行操作
  • 类中定义的属性也称为 成员属性
  • 类中等于的方法,也可称为成员方法

1一个类可以实例化多个对象

class Cart():
    color = '白色'  # 表示颜色的属性
    barnd = 'AoDi'  # 品牌属性
    pailing = 3.4  # 排量属性

    def lahuo(self):
        print("可以拉货")

    def laren(self):
        print("可以拉人")

    def doufeng(self):
        print("可以兜风")

a = Cart()
b = Cart()
print(a)    #<__main__.Cart object at 0x000001A91FBE6640>
print(b)    #<__main__.Cart object at 0x000001A91FC17A00>
  • 上面a和b变量都是对象,也都是通过Cart类实例化处理的对象

2.对象的成员操作:分为2部分 1是: 在类外部,使用对象操作成员 2是:通过对象访问类中的方法(函数)

1. 在类外部,使用对象操作成员

1.访问成员属性,先访a自身的color属性,如果没有,会访问这个a对象Cart类的color属性

class Cart():
    color = '白色'  # 表示颜色的属性
    barnd = 'AoDi'  # 品牌属性
    pailing = 3.4  # 排量属性

    def lahuo(self):
        print("可以拉货")

    def laren(self):
        print("可以拉人")
a = Cart()
b = Cart()
#当访问成员属性时,先访a自身的color属性,如果没有,会访问这个a对象Cart类的color属性
res = a.color
print(res) 

E:\python3810\python.exe D:/py/test/gao/面向对象/对象成员的操作.py
白色

2修改属性的值,实际上等于给对象创建了一个a对象自己的color属性

class Cart():
    color = '白色'  # 表示颜色的属性
    barnd = 'AoDi'  # 品牌属性
    pailing = 3.4  # 排量属性

    def lahuo(self):
        print("可以拉货")

    def laren(self):
        print("可以拉人")
a = Cart()
b = Cart()

a.color = "黑"
print(a.color)

E:\python3810\python.exe D:/py/test/gao/面向对象/对象成员的操作.py
黑

3给对象添加属性 : 给当前a对象创建了自己独有的属性

注意: 此时name的属性,只属于a对象

class Cart():
    color = '白色'  # 表示颜色的属性
    barnd = 'AoDi'  # 品牌属性
    pailing = 3.4  # 排量属性

    def lahuo(self):
        print("可以拉货")

    def laren(self):
        print("可以拉人")
a = Cart()
b = Cart()'
#改对象a增加了自己独有的属性 name
a.name = 'A6'
print(a.name)

E:\python3810\python.exe D:/py/test/gao/面向对象/对象成员的操作.py
A6

4删除对象属性

注意: 删除属性的时候,只能删除对象当前自己的属性 包含给对象添加和修改的属性,都可以删除
*

class Cart():
    color = '白色'  # 表示颜色的属性
    barnd = 'AoDi'  # 品牌属性
    pailing = 3.4  # 排量属性

    def lahuo(self):
        print("可以拉货")

    def laren(self):
        print("可以拉人")
a = Cart()
b = Cart()
a.name = 'A6'
del a.barnd   #报错del a.barnd AttributeError: barnd  #brand属性不能删除,因为 barnd属性是 Cart类的,

del a.name     #name属性可以删除, 因为 name属性是后来给a对象单独添加的name属性,

2 ,通过对象访问类中的方法(函数)

1.访问对象的方法: 如果a对象没有自己的独立方法,那么会访问这个对象的类的方法

class Cart():
    # 属性 == 特征  ==变量
    color = '白色'  # 表示颜色的属性
    barnd = 'aodi'  # 品牌属性
    pailing = 3.4  # 排量属性

    # 方法 == 功能 == 函数

    def lahuo(self):
        print("可以拉货")

    def laren(self):
        print("可以拉人")
res = Cart()
a = Cart()
res.lahuo()

E:\python3810\python.exe D:/py/test/gao/面向对象/对象成员的操作.py
可以拉货

2 修改对象方法,

 

#修改a对象的方法,给这个对象的方法重新定义  ??????给Cart类的 lahuo方法重新赋值一个func方法
def func():
    print("这是一个新方法")
a.lahuo = func    #把一个函数赋值给成员
a.lahuo()

E:\python3810\python.exe D:/py/test/gao/面向对象/对象成员的操作.py
这是一个新方法

3 添加新的方法,

class Cart():
    # 属性 == 特征  ==变量
    color = '白色'  # 表示颜色的属性
    barnd = 'aodi'  # 品牌属性
    pailing = 3.4  # 排量属性

    def lahuo(self):
        print("可以拉货")

    def laren(self):
        print("可以拉人")
a = Cart()

def func():
    print("这是1个新方法")
a.lahuo = func    #把一个函数赋值给成员

# 添加新方法: 给这个对象自己新创建的方法
a.func2 = func
a.func2()

4.删除方法

class Cart():
    # 属性 == 特征  ==变量
    color = '白色'  # 表示颜色的属性
    barnd = 'aodi'  # 品牌属性
    pailing = 3.4  # 排量属性

    def lahuo(self):
        print("可以拉货")
    def laren(self):
        print("可以拉人")

a = Cart()
def func():
    print("这是1个新方法")

# 添加新方法func: 给对象a自己新创建的方法.是a独有的方法
a.func2 = func

#删除 可以删除当前对象自己的方法
del a.func2 #可以删除
del a.lahuo #不可以删除,对象的类的方法

3总结

一个类定义类成员属性和成员方法, 那么通过这个类实例化的对象,也具备这些方法和属性吗 ?

  • 实际上,创建对象的时候,并不会把类中的属性和方法复制一份给对象,而是在对象中引用父类的方法
  • 因此,在访问对象的属性时,会先找对象自己的属性,如果没有就去找这个类的属性和方法

  • 一个对象有类创建后,是一个独立的对象,会引用父类的属性和方法
  • 如果在创建后,给对象的属性和方法,进行修改或添加,那么等于给这个对象创建了一个自己的属性和方法,
  • 所以在删除时,只能删除对象被修改或者添加的成员
原文地址:https://www.cnblogs.com/john5yang/p/15662072.html