如何打印对象名称,哪个对象正在调用类。类中的一个方法可以告诉我我叫过这个对象吗?

问题描述 投票:-2回答:1

如何打印对象名称是哪个对象正在调用类。

class Sample:
    def __init__(self):
        self.x=10

    def modify(self):
        self.x+=1

    def display(self):
        #Trying to do something to print which object is calling this method
python object
1个回答
0
投票

inspect为您提供了stack()方法,该方法为您提供了有关调用者框架的所有信息,例如名称:

import inspect

class Sample:
    def __init__(self):
        self.x = 10

    def modify(self):
        self.display()

    def display(self):
        print(f"Caller name: {inspect.stack()[1][3]}")

a = Sample()
a.modify()

OUTPUT:

来电者姓名:修改

© www.soinside.com 2019 - 2024. All rights reserved.