给出以下代码,如何打印作为self.looper(_function=)
参数传入的子进程的名称?我不知道该怎么做!我试图根据传递给_function
的函数进行逻辑分析。希望我正确地表达了这个问题。谢谢!
class okheregoes(object):
def __init__(self):
pass
def looper(self, _function):
print('the function name that was passed to _function is {}'.format(_function.__name__))
if _function.__name__ == 'child1':
print('it was child 1 this time')
if _function.__name__ == 'child2':
print('it was child 2 this time')
def child1(self, _number):
return 'my favorite number is {}'.format(_number)
def child2(self, _number):
return 'my favorite number is {}'.format(_number)
def main(self):
for i in range(1,10):
self.looper(_function=self.child1(_number=i+1))
self.looper(_function=self.child2(_number=i-1))
pleashelp = okheregoes()
if __name__ == '__main__':
pleashelp.main()
答案 0 :(得分:1)
您需要将wtfisthis
替换为_function.__name__
请注意,您正在将字符串而不是函数传递给self.dictlooper。要解决此问题,请像这样定义child1和child2:
def child1(self, _number):
def inner():
return 'my favorite number is {}'.format(_number)
return inner
答案 1 :(得分:1)
您没有将函数或子进程传递给dictlooper
。 (您甚至没有使用子进程。)您正在传递字符串。这些字符串是由名为child1
和child2
的函数返回的,但是Python并没有记录字符串所处的函数。
您无法代替wtfisthis
来获取函数名称信息。您可能必须更改代码的其余部分,也许是通过实际传递函数。