如何在Python中传入和传出函数中的变量
这个问题在这里已经有了答案:
你可以利用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