Articles of métodos

¿Adjuntar dinámicamente un método a un objeto Python existente generado con swig?

Estoy trabajando con una clase de Python y no tengo acceso de escritura a su statement. ¿Cómo puedo adjuntar un método personalizado (como __str__ ) a los objetos creados a partir de esa clase sin modificar la statement de la clase? EDIT: Gracias por todas sus respuestas. Los probé todos pero no han resuelto mi […]

Diferencia entre operadores y métodos.

¿Hay alguna diferencia sustancial entre los operadores y los métodos? La única diferencia que veo es la forma en que se llaman, ¿tienen otras diferencias? Por ejemplo, en Python, la concatenación, la segmentación y la indexación se definen como operadores, mientras que (en referencia a las cadenas) upper() , replace() , strip() etc., son métodos.

¿Cómo funciona python numpy.where ()?

Estoy jugando con los numpy y rebuscando en la documentación y he encontrado algo de magia. Es decir, estoy hablando de numpy.where() : >>> x = np.arange(9.).reshape(3, 3) >>> np.where( x > 5 ) (array([2, 2, 2]), array([0, 1, 2])) ¿Cómo logran internamente que puedas pasar algo como x > 5 a un método? Supongo […]

Al llamar a un método de clase se genera un TypeError en Python

No entiendo cómo se usan las clases. El siguiente código me da un error cuando bash usar la clase. class MyStuff: def average(a, b, c): # Get the average of three numbers result = a + b + c result = result / 3 return result # Now use the function `average` from the `MyStuff` […]

El método de clase genera “TypeError: … tiene varios valores para el argumento de palabra clave …”

Si defino un método de clase con un argumento de palabra clave así: class foo(object): def foodo(thing=None, thong=’not underwear’): print thing if thing else “nothing” print ‘a thong is’,thong llamar al método genera un TypeError : myfoo = foo() myfoo.foodo(thing=”something”) … TypeError: foodo() got multiple values for keyword argument ‘thing’ ¿Que esta pasando?

Python __call__ método especial ejemplo práctico

Sé que el método __call__ en una clase se activa cuando se llama a la instancia de una clase. Sin embargo, no tengo idea de cuándo puedo usar este método especial, porque uno puede simplemente crear un nuevo método y realizar la misma operación realizada en el método __call__ y, en lugar de llamar a […]

¿El mismo nombre para classmethod y instancemethod?

Me gustaría hacer algo como esto: class X: @classmethod def id(cls): return cls.__name__ def id(self): return self.__class__.__name__ Y ahora llame a id() para la clase o una instancia de ella: >>> X.id() ‘X’ >>> X().id() ‘X’ Obviamente, este código exacto no funciona, pero ¿hay una manera similar de hacerlo funcionar? ¿O cualquier otra solución para […]

Diferencia entre métodos y funciones, en Python en comparación con C ++

Estoy haciendo tutoriales de Code Academy en Python, y estoy un poco confundido acerca de la definición de método y función. Desde el tutorial: Ya conoces algunas de las funciones integradas que hemos usado en (o para crear) cadenas, como .upper() , .lower() , str() y len() . Desde C ++, creo que .upper() y […]

¿Por qué el código Python usa la función len () en lugar de un método de longitud?

Sé que python tiene una función len() que se usa para determinar el tamaño de una cadena, pero me preguntaba por qué no es un método del objeto de cadena. Actualizar Ok, me di cuenta de que estaba muy equivocada. __len__() es en realidad un método de un objeto de cadena. Parece extraño ver código […]

TypeError: method () toma 1 argumento posicional pero 2 fueron dados

Si tengo una clase … class MyClass: def method(arg): print(arg) … que uso para crear un objeto … my_object = MyClass() … en lo que yo llamo method(“foo”) como así … >>> my_object.method(“foo”) Traceback (most recent call last): File “”, line 1, in TypeError: method() takes exactly 1 positional argument (2 given) … ¿por qué […]