创建python类的实例&__初始化__
我想要一个有一些类变量的类,并且有对这些变量执行操作的函数——但是我想要自动调用这些函数。有更好的方法吗?我应该为此使用init?如果这是一个nooby问题,很抱歉-我对Python非常陌生创建python类的实例&__初始化__,python,oop,class,Python,Oop,Class,我想要一个有一些类变量的类,并且有对这些变量执行操作的函数——但是我想要自动调用这些函数。有更好的方法吗?我应该为此使用init?如果这是一个nooby问题,很抱歉-我对Python非常陌生 # used in second part of my question counter = 0 class myClass: foo1 = [] foo2 = [] def bar1(self, counter): self.foo1.append(co
# used in second part of my question
counter = 0
class myClass:
foo1 = []
foo2 = []
def bar1(self, counter):
self.foo1.append(counter)
def bar2(self):
self.foo2.append("B")
def start():
# create an instance of the class
obj = myClass()
# I want the class methods to be called automatically...
obj.bar1()
obj.bar2()
# now what I am trying to do here is create many instances of my class, the problem is
# not that the instances are not created, but all instances have the same values in
# foo1 (the counter in this case should be getting incremented and then added
while(counter < 5):
start()
counter += 1
#用于我问题的第二部分
计数器=0
类别myClass:
foo1=[]
foo2=[]
def bar1(自身,计数器):
self.foo1.append(计数器)
def bar2(自身):
self.foo2.append(“B”)
def start():
#创建类的实例
obj=myClass()
#我想自动调用类方法。。。
对象bar1()
对象bar2()
#现在我要做的是创建我的类的许多实例,问题是
#并不是说没有创建实例,而是所有实例在中都具有相同的值
#foo1(在这种情况下,计数器应该先递增,然后再添加
而(计数器<5):
开始()
计数器+=1
那么,有没有更好的方法来实现这一点?并导致我的所有对象都具有相同的值?谢谢!foo1和foo2是类变量,它们由所有对象共享 如果希望每个对象的
foo1
,foo2
都不同,则类应如下所示:
class myClass:
# __init__ function will initialize `foo1 & foo2` for every object
def __init__(self):
self.foo1 = []
self.foo2 = []
def bar1(self, counter):
self.foo1.append(counter)
def bar2(self):
self.foo2.append("B")
foo1和foo2是类变量,它们由所有对象共享 如果希望每个对象的
foo1
,foo2
都不同,则类应如下所示:
class myClass:
# __init__ function will initialize `foo1 & foo2` for every object
def __init__(self):
self.foo1 = []
self.foo2 = []
def bar1(self, counter):
self.foo1.append(counter)
def bar2(self):
self.foo2.append("B")
foo1和foo2是类变量,它们由所有对象共享。如果您希望它们对所有对象都是单独的,请创建
\uuuuu init\uuuu
方法并在函数Thank-编辑的函数中初始化它们。因此,如果它们在\uuuu init\uuuuu
中,并且我创建了obj1,然后创建了obj2,那么这两个变量都将设置为\uuuuu init\uuuuuu
,就好像它们只是在类定义中一样,obj1.doSomething()更改obj2将使用的变量?(假设doSomething()更改类变量)--注意:下面给出了答案:请参见@avasalfoo1和foo2是类变量,它们由所有对象共享。如果您希望它们对所有对象都是单独的,请创建\uuuuuuu init\uuuuu
方法并在函数Thank-编辑的函数中初始化它们。因此,如果它们在\uuuuuuu init\uuuu
中,我创建obj1,然后创建obj2,两者都将l将变量设置为\uuuuu init\uuuuu
中的任何变量,就像它们只是在类定义中一样,obj1.doSomething()更改obj2将使用的变量?(假设doSomething()更改类变量)--注意:下面的回答是:see@avasalThank you very-清除我对\uuuuu init\uuu
方法的困惑。非常感谢-清除我对\uuu init\uu
方法的困惑。