
python如何在子类新增属性
用户关注问题
如何给Python子类添加新的实例属性?
在Python中,我继承了一个父类,想要给子类对象添加一些独特的属性,该怎么实现?
通过子类的__init__方法添加实例属性
在子类的__init__方法中,可以调用父类的__init__方法继承父类属性,然后通过self.属性名的方式为子类实例添加新的属性。例如:
class Parent:
def init(self):
self.parent_attr = 'parent'
class Child(Parent):
def init(self):
super().init()
self.child_attr = 'child'
实例化Child后,child_obj.child_attr属性就被成功新增。
能否在子类外部动态给对象新增属性?
除了在子类中定义属性外,是否可以在实例化后给子类对象动态地添加新的属性?
可以直接给实例对象赋值新增属性
Python允许动态地为单个实例新增属性,写法是直接通过实例对象.属性名 = 值。例如:
child_obj = Child()
child_obj.new_attr = 'new value'
这样新属性就只属于该实例,不会影响相同比如其他子类实例。
子类添加新属性会影响父类及其他子类吗?
在子类中定义的新属性,是否会影响到父类或同一父类下的其他子类的属性?
子类中新属性只作用于该子类实例
新加在子类中的属性只属于该子类及其实例,不会改变父类的属性和功能,也不会自动添加到其他子类。属性的作用域局限于相应子类的对象。