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
您可能会对闭包做一些粗俗的操作。