【发布时间】:2018-11-16 10:57:31
【问题描述】:
在 Python 中有没有办法获得对调用方法的对象的引用?
如果是这样,是否有可能以嵌套方式进行?
my_class.py:
from modules import math_ops
class A():
def __init__(self):
self.math_ops = math_ops.B()
self.number = 1
模块/math_ops.py:
class B():
def add_1():
where_to_add = # Get instance of A() object
where_to_add.number += 1
要执行这个:
>>> a = A()
>>> a.math_ops.add_1()
得到这个:
>>> a.number
2
我问这个问题是因为我有兴趣编写一个与调用它的对象一起工作的静态方法,但我想避免使用该对象作为参数,因为调用像 @ 这样的方法会更好987654325@ 而不是 my_object.prop.static_method(my_object)。
【问题讨论】:
-
如果您的静态方法需要调用它的对象,为什么不直接使用常规实例方法?
-
如果你的意思是在
B.add_1()中使用self,那么它会引用B的实例(例如A.math_ops)而不是A的实例,我想。 -
那我猜你有问题的语句不是
my_object.static_method(my_object),而是my_object.prop.static_method(my_object)。对吗? -
哎哟。对了,我忘了把它放在那里。对不起。已编辑。
标签: python