好吧,我是Python的新手,我无法理解在Python中使用self
和this
关键字的区别。
这是使用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
的解释是错误的。我看了很多互联网的东西,但没有发现任何相关的东西。
任何人都可以解决我的问题。
答案 0 :(得分:2)
在Python document中提及:
通常,方法的第一个参数称为
self
。 这只不过是一个约定:名称self对Python来说绝对没有特殊意义。但请注意,如果不遵循惯例,您的代码可能对其他Python程序员的可读性较低,并且可以想象可能会编写依赖于此类约定的类浏览器程序。
答案 1 :(得分:1)
使用名称self
只是一个(强)约定。
只要您保持不变,您就可以自由使用任何名称。
强烈建议使用self
。
通常,Python会以您喜欢的方式为您提供很多自由。
另一方面,有很多惯例,比如如何命名变量(比较PEP8)。在99%的情况下,最好遵守这些惯例。但如果你是1%的情况,你可以采用不同的方式。我从未见过不使用名称self
的情况。
PEP8 recommends使用self
:
始终使用
self
作为实例方法的第一个参数。