当前位置: 首页 > 知识库问答 >
问题:

python中的父_unicode _

文德曜
2023-03-14

假设我有一个类叫动物和一个子类叫狗。我如何从狗类中访问动物的Unicode定义?

 class Animal:
      def __unicode__(self):
           return 'animal'

 class Dog(Animal):
      def __unicode__(self):
           return 'this %s is a dog' % (I want to get the Animal's __unicode__ here)

共有2个答案

柳飞鸾
2023-03-14

可以通过以下几种方式引用父方法:

class Dog(Animal):
      def __unicode__(self):
           return 'this %s is a dog' % Animal.__unicode__(self)

class Dog(Animal):
     def __unicode__(self):
           return 'this %s is a dog' % super(Dog, self).__unicode__()

注意:为了使用super,父类必须是一个新样式的类。第二种方法如果与问题中定义的老式类一起使用,就会失败。

暴夕
2023-03-14

由于在Python 2中实现了旧式类,因此只能通过限定名访问基类的方法:

class Animal:
    def __unicode__(self):
        return 'animal'

class Dog(Animal):
    def __unicode__(self):
        return 'this %s is a dog' % Animal.__unicode__(self)

但是,如果修改基类使其成为一个新样式的类,则可以使用super()

class Animal(object):
    def __unicode__(self):
        return 'animal'

class Dog(Animal):
    def __unicode__(self):
        return 'this %s is a dog' % super(Dog, self).__unicode__()

请注意,在Python 3中,所有类都是新样式的类,因此Super()在运行该版本时总是可以使用。

 类似资料:
  • 问题内容: 请向我解释,为什么当我运行这段代码时,一切都很好,并且我得到了类的父目录: 当我运行此代码时: 我在dirUrl中为 空 。 我这样尝试: 都一样,dirUrl中为 null 。 如何在Java中获取parent / parent / parent …目录? 问题答案: 注意 : 正如其他人已经说过的那样,将任何功能都基于某些父目录的检索是一个非常糟糕的设计思想(而且几乎肯定也会失败)

  • 问题内容: 在Python中,是否可以从Bar本身获取包含另一个对象Bar的对象(例如Foo)?这是我的意思的一个例子 这可能吗?谢谢! 问题答案: 传递对Bar对象的引用,如下所示: 编辑: 正如@thomleo指出的那样,这可能导致垃圾回收问题。建议的解决方案位于http://eli.thegreenplace.net/2009/06/12/safely- using-destructors-

  • 问题内容: 如何获得Python类的父类? 问题答案: 使用以下属性: 从文档: 类对象的基类的元组。 例: 另一个例子:

  • 我在一个父类中与Java中的ActionListener作斗争,我尝试了一系列可能的解决方案,但都无法使其工作。这在这里也没有帮助:Java actionlistener在不同的类中执行actionPerformed 问题如下: 父类 子类

  • 问题内容: 如何从儿童的基类访问装饰器? 我以为(错误地)认为ffg。会工作: 该类工作正常,但随后我创建了一个继承自此的子类: 这甚至无法正确导入,更不用说运行了。@_deco未定义。尝试baseclass._deco会引发未绑定的方法_deco()错误,这并不奇怪。 任何想法如何做到这一点,我真的很想将装饰器封装在该类中,但是我对此想法并不满意,需要在基类和子类中对其进行调用。 问题答案:

  • 本文向大家介绍python中子类继承父类的__init__方法实例,包括了python中子类继承父类的__init__方法实例的使用技巧和注意事项,需要的朋友参考一下 前言 使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的 初始化 。 注意:这个名称的开始和结尾都是