Articles of espacios de nombres de

Python importa atributos de clase en el espacio de nombres local del método

Me he estado preguntando por un momento si hay una forma más fácil de asignar atributos de clase al espacio de nombres del método local. Por ejemplo, en el método de dosomething , hago referencias explícitas a self.a y self.b : class test: def __init__(self): self.a = 10 self.b = 20 def dosomething(self): a = […]

Explicación de los espacios de nombres de Python

Estoy buscando una buena introducción a los espacios de nombres de Python. Encontré que este tutorial es bueno, pero estoy seguro de que hay más en la historia que eso. La referencia de Python contiene información pero es bastante difícil de leer. Por favor explique los espacios de nombres de Python. En su explicación, incluya […]

¿Insertar variable en el espacio de nombres global desde una función?

¿Es posible escribir una función que inserte un objeto en el espacio de nombres global y lo vincule a una variable? P.ej: >>> ‘var’ in dir() False >>> def insert_into_global_namespace(): … var = “an object” … inject var >>> insert_into_global_namespace() >>> var “an object”

Python: borrando un atributo de clase en una subclase

Tengo una subclase y quiero que no incluya un atributo de clase que esté presente en la clase base. Intenté esto, pero no funciona: >>> class A(object): … x = 5 >>> class B(A): … del x Traceback (most recent call last): File “”, line 1, in class B(A): File “”, line 2, in B […]

¿Poniendo paquetes de python separados en el mismo espacio de nombres?

Estoy desarrollando un marco de Python que tendría “complementos” escritos como paquetes separados. Es decir: import myframework from myframework.addons import foo, bar Ahora, lo que estoy tratando de organizar es para que estos complementos puedan distribuirse por separado del marco central e inyectarse en el espacio de nombres myframework.addons . Actualmente mi mejor solución para […]

Anular clases usadas en la clase padre

Supongamos que hay una clase NiceClass usa alguna otra clase LesserClass en un lugar que no puedo editar # NiceClass.py class LesserClass: … # stuff … class NiceClass: … # Lots of use of lesser class in here… … Ahora quiero usar mi propia clase MyLesserClass lugar de MyLesserClass en todas partes en una versión […]

Variable sin nombre y nombre

Sigue el python reference manual que tenemos. Cuando no se encuentra ningún nombre, se genera una excepción NameError. Si el nombre hace referencia a una variable local que no se ha vinculado, se genera una excepción UnboundLocalError. UnboundLocalError es una subclase de NameError. No entiendo cuándo se produjo UnboundLocalError ? Porque Python carece de declaraciones […]

¿Por qué los módulos se importan como _ en otro módulo?

Hay varios casos en la biblioteca estándar de Python donde los módulos se importan con un guión bajo ( _ ) en su nombre. Me pregunto por qué esto es necesario, ya que está bajo el nombre del módulo de todos modos y from … import * respetará la variable __all__ para lo que se […]

Python: es posible llamar a un método estático desde dentro de la clase sin calificar el nombre

Esto es molesto: class MyClass: @staticmethod def foo(): print “hi” @staticmethod def bar(): MyClass.foo() ¿Hay alguna manera de hacer que esto funcione sin nombrar a MyClass en la llamada? es decir, ¿puedo decir foo() en la última línea?

Acceso al espacio de nombres del módulo de llamada.

Sé que esto es algo que uno normalmente no debería hacer, y conozco las razones para ello. Sin embargo, estoy realizando una función de depuración dentro de una clase que debería mostrar cierta información sobre el módulo que la llamó. Necesito saber cómo subir un nivel en el espacio de nombres para encontrar una variable […]