Stuck on __init__ and self
我对编程还很陌生,为了解决这个问题,我看了很多其他的问题/答案,但我还是很困惑。有人能用非常简单的方式解释一下吗?
- 倡议是一个阶级的建设者。Self references the local variables to that object.注,自我是目标的变量,而不是方法的变量。
- EDOCX1是函数Python呼吁从一开始就目标。So you can set it up with any parameters it needs e.g.to assign a EDOCX1 original parameter to a EDOCX1 penal 2 object.EDOCX1 3是一个简单的方式,可以参考。It need this as you may create mulples of the same object and that is how you refer to the one you are dealing with at that specific moment.这些都是基本概念,在Python和尝试从网站上学习他们将是一个和平,如果你承诺学习,获得一本书,你甚至可以删除一个,如果你唱着买一个。
- I saw those,but I still wasn't understanding.I guess some clicked though because it makes more sense to me now.
创建类时,需要创建一个构造函数。这是在创建类的新实例时发生的。在这里,您可以将所需的最小参数传递到对象中,并执行该对象按设计运行所需的任何初始化。
self是对类定义的变量的引用。注意:它不是对方法中定义的变量的引用,尽管您可以在函数中为self定义新的属性。
1 2 3 4 5 6 7 8 9
| class Foo ():
"""This is a dummy class"""
def __init__(self, a, b, c):
self.name = a
self.description = b
self.total = c
def testMethod(self):
print("My name is: {} and my Desciption is: {}".format(self.name, self.description)) |
有关更多信息,请随意查看各个类的文档。
注意:对于Python2.7,需要将变量object定义为foo的对象,因为它从对象扩展。在3.x中,你不需要这个。
- 哦,那么,如果您执行了instance=foo()之类的操作,那么self.name和self.description基本上与instance.name或instance.description相同?
- 你是对的。不过,一般来说,我尽量避免这样的动态参数分配,并通过使用self.__name将事物定义为私有的。它不是真正的私密,但它是Python的标准。我喜欢创建处理arg处理的函数,这样您就不会意外地将损坏的代码或变量输入属性。