检查内部函数是否由同一个函数创建

2024-09-27 07:27:28 发布

您现在位置:Python中文网/ 问答频道 /正文

让我们假设我有这样的东西:

def a(b):
   def c(d):
      # do someting 
      # ...
      # ...
      return something_else
   return c

然后这个:

q = a(54)
w = a(97)
e = a(12)

有没有办法知道例如q和w都是由a创建的?或者我能做点什么来检查一下吗

我想做一个空类,然后从那个空类继承它,覆盖调用并使用issubclass,但它似乎有点黑客(如果它实际上是一个正常的函数,它会上升),也许有一个更好的选择

谢谢


Tags: 函数returndefdoelsesomething办法检查一下
1条回答
网友
1楼 · 发布于 2024-09-27 07:27:28

你可以打它:

def a(b):
   def c(d):
     # do stuff
     return stuff
   c.created_by = 'a'
   return c

所以当你使用它的时候

q = a(54)
w = a(97)

q.created_by == w.created_by # True

我不知道你为什么要这么做,也不知道你是否真正理解这个问题,但就我个人而言,我认为这是一个比通过类来做更大的黑客行为:

class A(object):
    def __init__(self, b):
        self.b = b

class C(A):
    def do_stuff(self, d):
        return self.b * d

q = C(54)
w = C(97)

isinstance(q, A) # True

相关问题 更多 >

    热门问题