我有Family
及其继承的Person
类。如何familyName
从Person
课程中获取属性?
class Family(object):
def __init__(self, familyName):
self.familyName = familyName
class Person(Family):
def __init__(self, personName):
self.personName = personName
举例来说,让这些Family
和Person
对象:
strauss = Family('Strauss')
johaness = Person('Johaness')
richard = Person('Richard')
我想做一些事情,例如:
print richard.familyName
并得到'Strauss'
。我怎样才能做到这一点?
你不能。
实例仅继承父类的方法和属性,而不继承 实例 属性。您不应混淆两者。
strauss.familyName
是 实例的实例 属性Family
。本Person
实例将有他们 自己
的副本familyName
属性。
通常,您将对Person
构造函数进行编码以采用两个参数:
class Person(Family):
def __init__(self, personName, familyName):
super(Person, self).__init__(familyName)
self.personName = personName
johaness = Person('Johaness', 'Strauss')
richard = Person('Richard', 'Strauss')
另一种方法是Person
保留对Family
实例的引用:
class Person(object):
def __init__(self, personName, family):
self.personName = personName
self.family = family
Person
从那里不再继承Family
。像这样使用它:
strauss = Family('Strauss')
johaness = Person('Johaness', strauss)
richard = Person('Richard', strauss)
print johaness.family.familyName
我正在尝试从Car的父类中获取一个参数并将其添加到我的数组(),我如何做到这一点呢? 父类 子类 最后一个问题法 公共字符串getCarsByColor(字符串CarColor) { 到目前为止,我已经有了这个,所以如果在参数中加入“red”,它将列出所有红色的汽车和相应的信息,但似乎不起作用~_~。
问题内容: 我在使用Python super()和继承和属性时遇到了一个非常奇怪的问题。一,代码: 这很好。但是,我想要的(对我来说似乎是Pythonic) 即使不起作用 得到很好的价值。在这种情况下,x是同时定义了fset和fget的超类的属性。那为什么不起作用呢? 问题答案: 我试图找到正确的语言来支持这种行为的原由,以免给您一个“因为它就是”答案……但是似乎这个问题已经被问了不止一次了,并且
在面向对象的程序设计中,定义一个新的 class 的时候,可以从某个现有的 class 继承,新的 class 称为子类,而被继承的 class 称为基类、父类或超类。 Python 中继承的语法如下: class Parent: pass class Child(Parent): pass 在第 1 行,定义了父类 Parent; 在第 4 行,定义了子类 Child,语法
问题内容: 我想向内置类型添加一些属性,所以我这样写: 但仅包含元素。为什么我在这里不工作?我应该如何从类似内置类型的继承?像这样的不可变类型是否相同? 问题答案: 该类型通常在其方法内进行列表的实际初始化,因为这是可变类型的约定。子类型化不可变类型时,只需要覆盖即可。虽然 可以在对列表进行子分类时覆盖,但对于您的用例而言,这样做没有多大意义。覆盖比较容易: 另请注意,在这种情况下,建议不要使用。
ts 如何继承父类并修改属性? 相关代码
问题内容: 在PHP / Java中,可以做到: 并且,Super类的所有公共/受保护的方法,属性,字段等都会自动成为Sub类的一部分,如有必要,可以重写这些类。 Javascript中的等效功能是什么? 问题答案: 我已经更改了现在的操作方式,我尝试避免使用构造函数和它们的属性,但是我从2010年起的旧答案仍然是最底层的。我现在更喜欢。适用于所有现代浏览器。 我应该注意,这通常比使用函数构造函数