对不起,标题不是很清楚,但有点难以解释。所以我想知道如何在python文件的每个函数中发生某种动作。我希望用户输入' paper'在整个python文件中的任何函数内部,我无法弄清楚如何做到这一点。这是一个例子:
def a():
raw_input()
print "Test"
def b():
raw_input()
print "Test 2"
如何设置它以便用户输入“纸张”#39;在这两个功能中(实际上超过30+)然后它会打印声明"你有一篇论文"
非常感谢您的帮助!
答案 0 :(得分:1)
如果您想要应用于每个功能,您应该使用装饰器。我不确定你要完成什么,但这应该证明:
>>> def youhaveapaper(function):
def wrapper(*args):
response = input('whatchu got?\n>>> ')
if response == 'paper':
print('you have a paper')
return function(*args)
import functools
functools.update_wrapper(wrapper, function)
return wrapper
>>> @youhaveapaper
def somefunction(x):
"""return the square of x"""
return x**2
>>> y = somefunction(5)
whatchu got?
>>> paper
you have a paper
>>> y
25
如您所见,somefunction
不需要更改,只需要在定义之前放置@youhaveapaper
。
答案 1 :(得分:0)
请参阅上面的好评和问题。你是说这个:
#!/usr/bin/python
def paper(prompt):
response = raw_input(prompt+' ')
print('you have a {}'.format(response))
def a():
paper('Test')
def b():
paper('Test2')
a()
b()