Articles of Reflexión de

¿Cómo puedo devolver un valor predeterminado para un atributo?

Tengo un objeto myobject , que podría devolver None . Si devuelve None , no devolverá un id atributo: a = myobject.id Por lo tanto, cuando myobject es None , el elemento anterior da como resultado un AttributeError : AttributeError: ‘NoneType’ object has no attribute ‘id’ Si myobject es None, quiero que sea igual a […]

¿Cómo distinguir entre una función y un método de clase?

Si una variable se refiere a una función o a un método de clase, ¿cómo puedo averiguar cuál es y obtener el tipo de clase en caso de que sea un método de clase, especialmente cuando la clase aún está siendo declarada como en el ejemplo dado? p.ej. def get_info(function_or_method): print function_or_method class Foo(object): def […]

Identificadores de Python no ASCII y reflectividad

Aprendí de PEP 3131 que los identificadores no ASCII eran compatibles con Python, aunque no se considera la mejor práctica. Sin embargo, obtengo este extraño comportamiento, donde mi 𝜏 identificador (U + 1D70F) parece convertirse automáticamente en τ (U + 03C4). class Base(object): def __init__(self): self.𝜏 = 5 # defined with U+1D70F a = Base() […]

En Python, ¿cómo puede obtener el nombre de una clase de función miembro?

Tengo una función que toma otra función como parámetro. Si la función es miembro de una clase, necesito encontrar el nombre de esa clase. P.ej def analyser(testFunc): print testFunc.__name__, ‘belongs to the class, … pensé testFunc.__class__ resolvería mis problemas, pero eso solo me dice que testFunc es una función.

¿Hay una manera de recorrer y ejecutar todas las funciones en una clase de Python?

yo tengo class Foo(): function bar(): pass function foobar(): pass En lugar de ejecutar cada función una por una como sigue: x = Foo() x.bar() x.foobar() ¿Existe una forma integrada de realizar un ciclo y ejecutar cada función en la secuencia en la que se escriben en la clase?

Almacenamiento seguro de credenciales en python

El ataque Un posible modelo de amenaza, en el contexto del almacenamiento de credenciales, es un atacante que tiene la capacidad de: inspeccionar cualquier memoria de proceso (usuario) leer archivos locales (usuario) AFAIK, el consenso sobre este tipo de ataque es que es imposible evitarlo (ya que las credenciales deben almacenarse en la memoria para […]

¿Cómo puedo cambiar mediante progtwigción el argspec de una función en un decorador de python?

Dada una función: def func(f1, kw=’default’): pass bare_argspec = inspect.getargspec(func) @decorator def func2(f1, kw=’default’): pass decorated_argspec = inspect.getargspec(func2) ¿Cómo puedo crear un decorador tal que bare_argspec == decorated_argspec ? (En cuanto a por qué, el marco que llama a la función decorada realiza una inspección argspec para elegir qué pasar, por lo que el decorador […]

El decorador Python hace que la función olvide que pertenece a una clase

Estoy tratando de escribir un decorador para hacer el registro: def logger(myFunc): def new(*args, **keyargs): print ‘Entering %s.%s’ % (myFunc.im_class.__name__, myFunc.__name__) return myFunc(*args, **keyargs) return new class C(object): @logger def f(): pass C().f() Me gustaría que esto se imprima: Entering Cf pero en su lugar me sale este mensaje de error: AttributeError: ‘function’ object has […]

¿Cómo enumerar las propiedades de un objeto en Python?

IC # lo hacemos a través de la reflexión. En Javascript es simple como: for(var propertyName in objectName) var currentPropertyValue = objectName[propertyName]; ¿Cómo hacerlo en Python?

Python: cambio de métodos y atributos en tiempo de ejecución

Deseo crear una clase en Python que pueda agregar y eliminar atributos y métodos. ¿Cómo puedo lograr eso? Ah, y por favor no preguntes por qué.