Articles of constructor de

Herencia Python simple

class Animal(object): def __init__(self, nlegs=4): print ‘__init__ Animal’ self.nlegs = nlegs class Cat(Animal): def __init__(self, talk=’meow’): print ‘__init__ Cat’ self.talk = talk class Dog(Animal): def __init__(self, talk=’woof’): print ‘__init__ Dog’ self.talk = talk ¿Por qué mi gato tom = Cat() no tiene un atributo nlegs? ¿Deberíamos llamar explícitamente a Animal.__init__() desde Cat.__init__ , o deberíamos […]

Cómo definir propiedades en __init__

Deseo definir propiedades en una clase desde una función miembro. A continuación se muestra un código de prueba que muestra cómo me gustaría que esto funcione. Sin embargo no consigo el comportamiento esperado. class Basket(object): def __init__(self): # add all the properties for p in self.PropNames(): setattr(self, p, property(lambda : p) ) def PropNames(self): # […]

Configuración automática de variables de miembros de clase en Python

Oye, tengo la siguiente clase en Python class Foo(object): a = None b = None c = None def __init__(self, a = None, b = None, c = None): self.a = a self.b = b self.c = c ¿Hay alguna manera de simplificar este proceso? Cada vez que agrego un nuevo miembro a la clase […]

¿Cuál es un ejemplo básico de herencia simple usando la palabra clave super () en Python?

Digamos que tengo las siguientes clases configuradas: class Foo: def __init__(self, frob, frotz): self.frobnicate = frob self.frotz = frotz class Bar: def __init__(self, frob, frizzle): self.frobnicate = frob self.frotz = 34 self.frazzle = frizzle ¿Cómo puedo (si puedo) usar super () en este contexto para eliminar el código duplicado?

La asignación de Python a uno mismo en el constructor no hace que el objeto sea igual

Estoy haciendo un constructor en Python. Cuando se llama con un objeto existente como su entrada, debe establecer el objeto “nuevo” en ese mismo objeto. Aquí hay una demostración de 10 líneas: class A: def __init__(self, value): if isinstance(value, A): self = value else: self.attribute = value a = A(1) b = A(a)#a and b […]

¿Por qué, o más bien, cómo funciona el objeto .__ nuevo__ funciona de manera diferente en estos dos casos?

Versión de Python: “‘2.7.3 (predeterminado, 10 de abril de 2013, 06:20:15) \ n [GCC 4.6.3]’” Tengo esto: >>> class testclass1(object): … pass … >>> class testclass2(object): … def __init__(self,param): … pass … >>> a = object.__new__(testclass1, 56) Traceback (most recent call last): File “”, line 1, in TypeError: object.__new__() takes no parameters >>> b = […]

Evite especificar todos los argumentos en una subclase

Tengo una clase: class A(object): def __init__(self,a,b,c,d,e,f,g,………..,x,y,z) #do some init stuff Y tengo una subclase que necesita un argumento adicional (la última W ) class B(A): def __init__(self.a,b,c,d,e,f,g,………..,x,y,z,W) A.__init__(self,a,b,c,d,e,f,g,………..,x,y,z) self.__W=W Parece tonto escribir todo este código de la placa de la caldera, por ejemplo, pasar todos los argumentos del Ctor de B a la llamada […]

¿Cómo llamar al método __init__ de la clase base desde la clase secundaria?

Si tengo una clase de python como: class BaseClass(object): #code and the init function of the base class Y luego defino una clase infantil como: class ChildClass(BaseClass): #here I want to call the init function of the base class Si la función init de la clase base toma algunos argumentos que los estoy tomando como […]

Constructor de Python y valor predeterminado

De alguna manera, en la siguiente clase de Nodo, las variables wordList y wordList se comparten entre todas las instancias de Node. >>> class Node: … def __init__(self, wordList = [], adjacencyList = []): … self.wordList = wordList … self.adjacencyList = adjacencyList … >>> a = Node() >>> b = Node() >>> a.wordList.append(“hahaha”) >>> b.wordList […]

¿Crear una lista en Python, algo furtivo está pasando?

Disculpas si esto no tiene ningún sentido, soy muy nuevo en Python. Desde las pruebas en un intérprete, puedo ver que la list() y [] producen una lista vacía: >>> list() [] >>> [] [] Por lo que he aprendido hasta ahora, la única forma de crear un objeto es llamar a su constructor ( […]