如何在Python中传入和传出函数中的变量

这个问题在这里已经有了答案:

  • 你如何在Python中返回多个值? 13个答案

  • 你可以利用kwargs来解压命名变量

    def foo(**kwargs):
        kwargs['var1'] = do_something(kwargs['var1'])
        ...
        return kwargs
    

    如果您发现自己编写了许多对相同数据起作用的函数,则更好的方法是使用类来包含您的数据。

    class Thing:
        def __init__(self, a, b, c):
            var_1 = a
            var_2 = b
            var_3 = c
    
        # you can then define methods on it
    
        def foo(self):
            self.var_1 *= self.var_2
    
    # and use it
    t = Thing(1, 2, 3)
    t.foo()
    print(t.var_1)
    

    有许多方法可以更简单地创建这些方法。 其中一些包括:

    ATTRS:

    >>> @attr.s
    ... class SomeClass(object):
    ...     a_number = attr.ib(default=42)
    ...     list_of_numbers = attr.ib(default=attr.Factory(list))
    ...
    ...     def hard_math(self, another_number):
    ...         return self.a_number + sum(self.list_of_numbers) * another_number
    

    namedtuples

    >>> Point = namedtuple('Point', ['x', 'y'])
    >>> p = Point(11, y=22)     # instantiate with positional or keyword arguments
    >>> p.x + p.y               # fields accessible by name
    33
    

    数据类

    这些还没有在Python中,但将在3.7中添加。 我在这里添加它们是因为它们可能会成为未来的选择工具。

    链接地址: http://www.djcxy.com/p/53127.html

    上一篇: How to pass variables in and out of functions in Python

    下一篇: Pythonic way to return a boolean value and a message