Python:在python文件的每个函数中都有一个动作

时间:2015-10-24 16:59:38

标签: python function file

对不起,标题不是很清楚,但有点难以解释。所以我想知道如何在python文件的每个函数中发生某种动作。我希望用户输入' paper'在整个python文件中的任何函数内部,我无法弄清楚如何做到这一点。这是一个例子:

def a():
    raw_input()
    print "Test"

def b():
    raw_input()
    print "Test 2"

如何设置它以便用户输入“纸张”#39;在这两个功能中(实际上超过30+)然后它会打印声明"你有一篇论文"

非常感谢您的帮助!

2 个答案:

答案 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()