小编Ros*_*ron的帖子

如何在执行函数后获取函数的局部值?

假设我有一个类似的功能f(a, b, c=None).目的是调用函数f(*args, **kwargs),然后构造一组新的args和kwargs,这样:

  1. 如果函数有默认值,我应该能够获取它们的值.例如,如果我称之为f(1, 2),我应该能够获得元组(1, 2, None)和/或字典{'c': None}.
  2. 如果在函数内部修改了任何参数的值,则获取新值.例如,如果我调用它f(1, 100000, 3)并且函数确实if b > 500: b = 5修改了局部变量,我应该能够获得元组(1, 5, 3).

这里的目的是创建一个完成函数工作的装饰器.原始函数充当为实际执行设置数据的前导码,装饰器完成作业.

编辑:我正在添加一个我正在尝试做的例子.它是一个为其他类创建代理的模块.


class Spam(object):
    """A fictional class that we'll make a proxy for"""
    def eggs(self, start, stop, step):
        """A fictional method"""
        return range(start, stop, step)

class ProxyForSpam(clsproxy.Proxy): proxy_for = Spam @clsproxy.signature_preamble def eggs(self, start, stop, step=1): start = max(0, start) stop = min(100, stop) …

Run Code Online (Sandbox Code Playgroud)

python

7
推荐指数
2
解决办法
5234
查看次数

标签 统计

python ×1