Perguntas com a marcação «super»


9
O que 'super' faz em Python?
Qual é a diferença entre: class Child(SomeBaseClass): def __init__(self): super(Child, self).__init__() e: class Child(SomeBaseClass): def __init__(self): SomeBaseClass.__init__(self) Vi superser usado bastante em classes com apenas uma herança. Percebo por que você o usaria em herança múltipla, mas não estou claro quanto às vantagens de usá-lo nesse tipo de situação.
564 python  oop  inheritance  super 

7
super () gera "TypeError: deve ser do tipo, não classobj" para a classe de novo estilo
O seguinte uso de super()gera um TypeError: por quê? >>> from HTMLParser import HTMLParser >>> class TextParser(HTMLParser): ... def __init__(self): ... super(TextParser, self).__init__() ... self.all_data = [] ... >>> TextParser() (...) TypeError: must be type, not classobj Há uma pergunta semelhante no StackOverflow: Python super () gera TypeError , onde …




1
Por que a super () mágica do Python 3.x?
No Python 3.x, super()pode ser chamado sem argumentos: class A(object): def x(self): print("Hey now") class B(A): def x(self): super().x() >>> B().x() Hey now A fim de fazer este trabalho, um pouco de magia em tempo de compilação é executada, uma conseqüência do que é que o código a seguir (que …
159 python  python-3.x  super 

4
Python super () aumenta TypeError
No Python 2.5, o código a seguir gera um TypeError: >>> class X: def a(self): print "a" >>> class Y(X): def a(self): super(Y,self).a() print "b" >>> c = Y() >>> c.a() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 3, in a TypeError: super() …

13
Java: chamando um super método que chama um método substituído
public class SuperClass { public void method1() { System.out.println("superclass method1"); this.method2(); } public void method2() { System.out.println("superclass method2"); } } public class SubClass extends SuperClass { @Override public void method1() { System.out.println("subclass method1"); super.method1(); } @Override public void method2() { System.out.println("subclass method2"); } } public class Demo { public static …



2
`super` em uma subclasse` typing.NamedTuple` falha no python 3.8
Eu tenho um código que funcionou no Python 3.6 e falha no Python 3.8. Parece resumir-se a chamar a supersubclasse de typing.NamedTuple, como abaixo: <ipython-input-2-fea20b0178f3> in <module> ----> 1 class Test(typing.NamedTuple): 2 a: int 3 b: float 4 def __repr__(self): 5 return super(object, self).__repr__() RuntimeError: __class__ not set defining 'Test' …
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.