从方法外部访问python中的属性

从方法外部访问python中的属性,python,Python,假设我有以下代码: class MyClass(obj): @property def product(self): return self._product def __init__(self, *args, **kwargs): self._product = kwargs.pop('product') super(MyClass, self).__init__(*args, **kwargs) field

假设我有以下代码:

class MyClass(obj):
    @property
    def product(self):
        return self._product

    def __init__(self, *args, **kwargs):
        self._product = kwargs.pop('product')
        super(MyClass, self).__init__(*args, **kwargs)

    field = self._product.name

如您所见,我试图使用属性_乘积设置变量字段,但显然,我得到的错误是,
self未定义。
,但我如何才能从类中的局部变量实际访问属性?

在方法之外,实例还不存在(就这一点而言,类也不存在). 那么
self
指的是什么?如果希望
字段
直接公开产品名称,请将其设置为另一个
@属性
。假设这样做是可能的。假设您最终创建了两个MyClass实例,每个实例都有一个产品,分别名为“Widget”和“Sprocket”。
MyClass.field
有什么值?答案不能是“Widget或Sprocket,取决于您使用哪个实例访问它”,因为类属性是共享的。如果想要不共享的属性,可以使用实例属性,这些属性通常在
\uuuu init\uuu
中创建。如果你试图在那里引用self,你就不会得到self没有定义。你的目标是什么?您试图解决一个问题,但显然这种方法不起作用。那么,需要解决的问题是什么?