Why its necessary to use any string with dot point with self in class python(self.x=x)?
我在python中学习oop,所以我在正确理解sefl关键字方面遇到了一些问题。
假设一个程序:
1 2 3 4 5 6 7 8 9 10
| class ge:
def __init__(self,a,b):
self.p=a
self.l=b
def ff(self):
aaa=self.p+self.l
print(aaa)
hh=ge(1,2)
hh.ff() |
我很困惑为什么有必要用带点的self字符串?这意味着什么?像:
self.a=a,我们可以改变self.a到ay字符串,就像self.b,self.c,它意味着什么?为什么有必要?
我的第二个问题是:
用参数定义类和不用参数定义类有什么区别?
1 2 3 4 5 6 7 8 9 10
| class hello(object):
def __init__(self,a,v):
self.a=a
self.v=v
def p(self):
f=self.a+self.v
print(f)
he=hello(1,2)
he.p() |
如果我定义class hello(object)工作,但如果我将类定义为:class hello():也起作用但如果我定义如下:class hello:也起作用
hello(object):类、class hello()类、class hello:类的区别是什么?
- 请在一篇文章中只问一个问题,您的第二个问题可以在新文章中被问。
- 1。self不是关键字,它只是一个引用类当前实例的参数名。你可以随意叫它,但习惯上叫它self。2。在python 3中,class hello(object):、class hello():或class hello:之间没有区别,但是如果您想在python 2上正确地编写代码,最好使用第一个表单。
- @如果你不能正确理解问题,请不要标记为重复。我不是在问什么是自我,我知道自我是全球的一个属性,我是在问别的东西。如果你知道在问什么,那么回答,但不要标记不必要的重复。
- @如果你不能正确理解问题,请不要在"复制"上做标记。我不是在问什么是自我,我知道自我是全球的一个属性,我是在问别的东西。如果你知道在问什么,那么回答,但不要标记不必要的重复
- "自我成为全球的一个属性"我不知道你所说的那个短语是什么意思,但听起来不正确。在本页顶部链接的目标问题中,以及在MMF和Wonka答案中链接的问题中,都有很多好的信息。请研究这些信息,如果您还有关于这个主题的问题,但这些答案中没有任何一个涵盖,您可以将它添加到这个问题的底部,然后重新打开它,或者您可以问一个新的问题。
- @KennyTM我想要快速回答,新用户在90分钟内只能问一个问题。
- @因为我没找到我要问的。如果你知道答案,请回答或让我提问。我不是在问"自我"是什么,它是如何使用的。我在问我们能不能给自己系上一根绳子,以及这个绳子是如何工作的?
- 我还是不太清楚你真正的问题是什么。在您的ge.__init__方法中,语句self.p=a创建ge对象当前实例的属性。该属性名为"p",赋值将self.p名称绑定到在a参数中传递给ge.__init__的对象。您可能会发现这篇文章很有帮助:关于Python名称和值的事实和神话,这篇文章是由经验丰富的NedBatchelder撰写的。
第一个问题:这个问题的副本
第二个问题:不同的符号没有区别。当使用括号时,意味着类继承自括号之间的类。
在python 3中,默认情况下每个类都继承自类object。因此,hello(object):、class hello():、class hello:是完全等效的。但是,在Python2中,必须显式继承。
下面是关于如何在Python中创建类的更多详细信息。
- "默认情况下,每个类都继承自类对象",这在python 3中是正确的,但在python 2中不是这样,这就是为什么如果您想要一个新的样式的类(而且您可能需要这样做),那么您需要显式继承自object。
- @感谢您的精确性!我编辑了我的答案。
用自己来引用类的实例,在Java中是这样的
复制:在Python中什么时候使用"self"?