Python 类中的作用域

发布于 2024-11-04 15:21:24 字数 454 浏览 1 评论 0原文

请看一下:

class Car:
    def __init__(self, bid_code):
        self.__bid = bid_code

    def doit(self, cry):
        self.bid_it = cry

    def show_bid(self):
        print self.__bid

    def show_it(self):
        print self.bid_it

a = Car("ok")
a.show_bid()
a.doit("good")
a.show_it()

这里 bid_it 的范围是什么?我认为它是一个局部变量,因为它位于 def 块内。我怎么可能在函数之外调用它?我还没有声明 bid_it 是全局的。

谢谢

Please have a look at this:

class Car:
    def __init__(self, bid_code):
        self.__bid = bid_code

    def doit(self, cry):
        self.bid_it = cry

    def show_bid(self):
        print self.__bid

    def show_it(self):
        print self.bid_it

a = Car("ok")
a.show_bid()
a.doit("good")
a.show_it()

What is the scope of bid_it here? I thought it was a local variable, because it is inside a def block. How is it possible that I can call it outside the function? I haven't declared that bid_it is global.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

扶醉桌前 2024-11-11 15:21:24

通过使用 self,您已将其绑定到实例。它现在是一个实例变量。实例变量是其实例的本地变量。如果变量未绑定(无 self 前缀),则它具有函数作用域,并在方法调用结束后超出作用域,但您已将其绑定到其他内容(实例)。

By using self, you've bound it to the instance. It's now an instance variable. Instance variables are local to their instances. If the variable were unbound (no self prefix), it'd have function scope and go out of scope once the method call is over, but you've bound it to something else (the instance).

遇见了你 2024-11-11 15:21:24
def doit(self, cry):
    self.bid_it = cry

“self”的作用类似于 C++ 中的 this 指针,在本例中是对 Car 对象的引用。如果 bid_it 未在 self 中定义,则会动态创建并分配一个值。这意味着您可以在任何地方创建它,只要您有对象的引用即可。

def doit(self, cry):
    self.bid_it = cry

'self' acts like a this pointer in c++, in this case a reference to a Car object. If bid_it is not defined in self, it's created on the fly and assigned a value. This means that you can create it anywhere, just as long as you have a reference to your object.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文