例如定义如下函数:
def calc():
print x
现在希望在调用calc前,由调用者为calc添加x这个局部变量。这里要求x必须是局部变量。
现在的想法有两个,一个是想办法直接修改calc的local,但是在calc的外部没有办法访问其内部local,所以这个应该行不通。
另一个思路是,能不能动态修改calc的定义,通过一个装饰器或者其他手段,动态修改calc的定义为
def calc(x):
print x
但是这里要求函数的参数x是通过某种手段动态添加的。这样的话,是不是要使用装饰器配合修改Python的字节码才能完成呢?
不知这个思路是否可行。
最后要说的是,这个其实可以使用动态参数比如kwargs,但是我希望能有一种更简洁的语法书写方式。