假设我将self.f
发送到全局方法
def write_to_report(file_hdlr, content):
如果我想获得file_hdlr
所属的对象。
如何获得它?因为我需要知道file_hanlder属于哪个Class, 并使用类名来做某事
def write_to_report(file_hdlr, content):
file_hdlr.__self__ # ??? NO
class MemoryInfo(threading.Thread):
def __init__(self, config):
self.f = get_export_file_hdlr(self.__class__.__name__)
class CPUInfo(threading.Thread):
def __init__(self, config):
self.f = get_export_file_hdlr(self.__class__.__name__)
答案 0 :(得分:1)
你不能。
另一种方法:
class ReportWriterMixin(object):
def write_to_report(self):
this_class = self.__class__
# do thing with self.f based on this_class
class CPUInfo(threading.Thread, ReportWriterMixin):
def __init__(self, config):
self.f = get_export_file_hdlr(self.__class__.__name__)
self.write_to_report()
这样,虽然您的方法不再是" global",但它可以供您喜欢的任何课程使用
答案 1 :(得分:0)
如果您想知道file_hdlr
变量的类型,可以使用函数type
:
file_hdlr_type = type(file_hdlr)