在python中使用self和this的区别

时间:2017-01-08 09:21:44

标签: python python-3.x this self

好吧,我是Python的新手,我无法理解在Python中使用selfthis关键字的区别。 这是使用self作为参数的代码:

  class restaurant():
        bankrupt = False
        def open_branch(self):
            if not self.bankrupt:
                print("branch open")
    x=restaurant()
    print(x.bankrupt)
    y=restaurant()
    y.bankrupt=True
    print(y.bankrupt)

这是使用this作为参数的代码:

class restaurant():
    bankrupt = False
    def open_branch(this):
        if not this.bankrupt:
            print("branch open")
x=restaurant()
print(x.bankrupt)
y=restaurant()
y.bankrupt=True
print(y.bankrupt)

这两种方法都给了我相同的输出。所以当self解决我们的问题时,我无法理解为什么我们使用this。也许我对self的解释是错误的。我看了很多互联网的东西,但没有发现任何相关的东西。 任何人都可以解决我的问题。

2 个答案:

答案 0 :(得分:2)

Python document中提及:

  

通常,方法的第一个参数称为self这只不过是一个约定:名称self对Python来说绝对没有特殊意义。但请注意,如果不遵循惯例,您的代码可能对其他Python程序员的可读性较低,并且可以想象可能会编写依赖于此类约定的类浏览器程序。

答案 1 :(得分:1)

使用名称self只是一个(强)约定。 只要您保持不变,您就可以自由使用任何名称。 强烈建议使用self

通常,Python会以您喜欢的方式为您提供很多自由。 另一方面,有很多惯例,比如如何命名变量(比较PEP8)。在99%的情况下,最好遵守这些惯例。但如果你是1%的情况,你可以采用不同的方式。我从未见过不使用名称self的情况。

PEP8 recommends使用self

  

始终使用self作为实例方法的第一个参数。