[英]Get the object that a function was called from in python
如果我有一個包含方法的 class,並且我從實例調用該方法,我如何獲取調用它的特定實例?
例如,我有一個 class:
class foo:
def __init__(self):
pass
def do_something(self):
bar()
我還有一個 function:
def bar():
print()
如果我制作一個 object,例如obj = foo()
,然后我調用obj.do_something()
,我將如何從我的bar()
function 中獲取obj
?
使用檢查模塊,您可以獲取調用者框架並訪問其局部變量,特別是表示實例的self
參數:
import inspect
def bar():
caller = inspect.stack()[1].frame
localvars = caller.f_locals
self = localvars['self']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.