如何将变量带入函数-Python

死火19

我遇到一个问题,想按名称将变量带入函数中。

到目前为止,我已经尝试过了:

x = 5
def func(y = x):
    return y ** 2

>>>print func()
25
>>>x = 4
>>>print func()
25

但是,如果我在输入代码后尝试编辑该输入变量,则该功能将检测到旧输入,因此它仍然会打印出与新输入平方相反的25。

有没有一种更干净的方法将变量拉入实际起作用的函数中?

阿什维尼乔杜里(Ashwini Chaudhary)

默认函数值是在函数创建时计算的,因此即使您更改了默认值,x也不会在函数中对其进行更改。

文档

执行功能定义时,将评估默认参数值这意味着在定义函数时,表达式将被计算一次,并且每次调用均使用相同的“预计算”值。

读取:mutable对象用作默认值可能会导致意外结果。

如果要访问全局值,则只需执行以下操作:

def func():
    return x**2

或更好地明确传递它:

def func(y):
   return y**2

不在函数内使用全局变量的另一个原因

>>> x = 10
>>> def func():
...     print x
...     x = 5
...     
>>> func()
Traceback (most recent call last):
    func()
  File "<ipython-input-5-ab38e6cadf6b>", line 2, in func
    print x
UnboundLocalError: local variable 'x' referenced before assignment

使用classes

class A:
    x = 5
    @staticmethod
    def func():
        return A.x**2
...     
>>> A.func()
25
>>> A.x = 10
>>> A.func()
100

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将C ++函数的输出保存到python变量

如何将函数存储为python中的类变量?

Python:如何将键从函数的变量传递给字典?

在python 3中如何将变量正确返回给函数?

Python:如何将值传递给作为函数的变量?

如何将变量带入范围,以及如何匹配类型

如何将列表变量传递回函数之外(Python)

在 Python 中循环代码时,如何将函数中的变量附加到列表中

Airflow-如何将xcom变量传递给Python函数

如何将变量分配给python中的特定函数输出?

如何将所有全局变量导入函数-Python

如何将python事件变量传递给另一个函数?

Python:如何将函数的结果分配给我可以读取的变量

如何将变量从函数传递到Python的主代码中

如何将JavaScript函数的返回值获取到Python变量

如何将变量传递给python(selenium Webdriver)包函数?

如何将javascript异步函数的返回值传递给python变量

如何将python变量导入bash

如何将HEREDOC文本带入Shell脚本变量?

当只有一些变量需要多个变量时,如何将多个值传递给函数-Python 3

如何将图分配给变量并将变量用作Python函数中的返回值

如何将 C 变量作为变量公开给 Python?

如何将数学函数放入python函数?

如何将 Python Pandas 函数转换为 Python PySpark

Python:如何将变量传递到装饰器中,并且装饰器也将装饰器变量传递回函数中?

如何将成员函数带入范围?

如何将变量传递给python中的sql查询?

如何将值传递给 Python 中的类变量?

如何将变量放入Python文档字符串