What does self do?
Possible Duplicate:
Python 'self' keyword
如果这是一个令人难以置信的琐碎问题,请原谅我,但我从来没有在Python中理解过自我。它是做什么的?当我看到
1 2
| def example(self, args):
return self.something |
他们做什么?我想我在函数中也看到过args。请用简单的方式解释:p
- 请阅读docs.python.org/tutorial/classes.html,因为它应该比任何答案都有用(我想)
- 请在堆栈溢出中搜索"python self"。stackoverflow.com/search?Q=python+self。然后,在阅读了所有相关问题之后,考虑结束这个问题,除非它是独一无二的。
- @sixfeet6-谁在编写代码之前通过前后阅读文档来学习语言?我们可以提供更多的帮助。
- 我不同意。在这个网站上提出的许多问题在文档中都有简单的答案。
- @六点六,我发现医生们都很忙,这就是我来这里的原因。
- 我不是说这是你的问题很糟糕,离它很远,但我坚信最好是指向文档来获得足够简单的东西。也许这个站点应该有一个自关闭选项"我在文档中找到了我要找的东西;这里是链接"。在任何情况下,我觉得让X人争先恐后地回答这些简单问题是愚蠢的,因为OP通常会以不精确、不完整或混淆的信息而告终,而在网上有一些非常好的专业维护文档,并且可以从搜索引擎轻松搜索。
- "完美的专业维护文档"对于像我这样已经是专业编程人员的人来说是很好的,我猜你也是。任何专业人士都应该清楚,这项业务完全是新手。把它们指向那些无论你是否意识到,都需要大量已有知识才能被理解的文档是没有帮助的。
- 我明白你的观点,我倾向于同意你说的50%,但是你仍然没有解决"新手"在那里遇到的巨大浪费时间,因为他们可能需要永远去学习理解文档是多么有价值,并最终成功地理解文档,尤其是那些易于理解的python文档,不像say,和关于NTP的RFC。
- "任何专业人士都应该清楚,这项业务完全是新手"。这远远不是真的。这并不明显。OP可能是懒惰而不是N0B。
- 我想强调的是,我通常不会发现问题更好的答案是由医生,我也明白,"新手",而不是这样的"新手"赞赏,可以问几乎任何东西(在既定的指导方针)。在我看来,指南应该鼓励,当它有意义的,像在这种情况下,阅读文件/标准/规范/等,如果OP仍然不理解,他可以这样说,然后社区将更有助于提供例子/澄清/等。
听起来你好像是偶然发现了Python面向对象的特性。
self是对对象的引用。它与许多C语言中的this的概念非常接近。查看此代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Car(object):
def __init__(self, make):
# Set the user-defined 'make' property on the self object
self.make = make
# Set the 'horn' property on the 'self' object to 'BEEEEEP'
self.horn = 'BEEEEEP'
def honk(self):
# Now we can make some noise!
print self.horn
# Create a new object of type Car, and attach it to the name `lambo`.
# `lambo` in the code below refers to the exact same object as 'self' in the code above.
lambo = Car('Lamborghini')
print lambo.make
lambo.honk() |
- 该代码给出错误File"", line 20, in AttributeError: 'Car' object has no attribute 'name' 。
- 明白了,谢谢你们。所以基本上,如果假设一个类中有一个变量(不是嵌套函数),我可以使用self访问它?
- 修正了错误,菲克。是的,如果你说的是我认为你是对的。从技术上讲,"类中的变量"是"对象上的属性",但是如果你继续使用这个例子,你将开始掌握它的窍门……
self是对方法(本例中的example函数)所在的类的实例的引用。
您将要查看类系统上的python文档,以全面介绍python的类系统。您还需要查看有关stackoverflow主题的其他问题的这些答案。
它是对当前类实例的引用。在您的示例中,EDCOX1(2)引用EDCOX1×3"1"类对象的EDCX1·O.2属性。