簡體   English   中英

獲取從 python 調用 function 的 object

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM