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

Python 检查内部函数是否由同一函数创建,python,python-3.x,Python,Python 3.x,让我们假设我有这样的东西: 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,但它似乎有点粗糙,如果它实际上是一

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

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,但它似乎有点粗糙,如果它实际上是一个正常的函数,它会出现问题,也许有更好的选择


谢谢。

你可以用鸭子来打它:

def ab: def cd: 做事 退货 c、 创建人='a' 返回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

您可能会对闭包做一些粗俗的操作。