相关疑难解决方法(0)

如何通过引用传递变量?

Python文档似乎不清楚参数是通过引用还是值传递,以下代码生成未更改的值'Original'

class PassByReference:
    def __init__(self):
        self.variable = 'Original'
        self.change(self.variable)
        print(self.variable)

    def change(self, var):
        var = 'Changed'
Run Code Online (Sandbox Code Playgroud)

有什么我可以通过实际参考传递变量吗?

python reference parameter-passing pass-by-reference

2480
推荐指数
22
解决办法
124万
查看次数

为什么我可以在函数中使用变量之前在 Python 中定义它?

在下面的代码中,我定义了两个函数。maincube。我想main成为我的程序的开始,所以我cube在里面调用了main

>>> def main():
    number = int(input('Enter a number: '))
    cubed_number =  cube(number)
    print("The number cubed is: ", cubed_number)


>>> def cube(number):
    return number * number * number

>>> 
Run Code Online (Sandbox Code Playgroud)

但是我在定义cube之后main,所以我认为我的代码会引发一个NameError. 然而,Python 并没有引发异常,而是完美地执行了我的代码:

>>> main()
Enter a number: 5
The number cubed is:  125
>>> 
Run Code Online (Sandbox Code Playgroud)

发生了什么?为什么 Python 能够运行我的代码,而不知道它cube是如何定义的?NameError怎么没有升职?

更奇怪的是,当我尝试对类做同样的事情时,Python 确实引发了一个NameError

>>> class Main:
        cubed_number()


Traceback (most recent call last): …
Run Code Online (Sandbox Code Playgroud)

python class function

8
推荐指数
1
解决办法
5321
查看次数