小编Mat*_*att的帖子

为什么不必在Python中返回对象?

我是Python和编程的新手,我刚刚进入OOP.在Python中,函数命名空间中定义的任何内容仅在该命名空间内有效; 一旦在那个空间之外,变量就会被遗忘:

def foo():
    a = 3

print(a)

NameError: name 'a' is not defined
Run Code Online (Sandbox Code Playgroud)

据我所知,除了从函数返回数据外,函数内部的任何信息都会在函数调用结束时丢失,这就是我的问题.请使用以下代码:

class Example:

    def __init__(self, name):
        self.name = name

    def foo(self):
        self.name = 'John'

bar = Example('Jake')
bar.foo()
print(bar.name)

'John'
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么你不必在方法之后返回对象?在正常函数中,任何变量都被遗忘,但在方法中,似乎数据实际上附加到对象本身,例如尽管首先在另一个方法中foo()引用,self.name但该方法能够引用self.name.它是否正确?还是有更好的技术解释?

python python-3.x

6
推荐指数
2
解决办法
376
查看次数

标签 统计

python ×1

python-3.x ×1