Inherited sınıf değişken modifikasyonu Bir alt sınıfın, üst öğesinden devraldığı bir sınıf değişkenini değiştirmek istiyorum.Python
Ben çizgisinde bir şey yapmak istiyorum:
Child.foobar = ["hello", "world"]
yapabileceğim:
class Child(Parent):
def __init__(self):
type(self).foobar.extend(["world"])
ama sonra her zaman örneğini ideal
class Parent(object):
foobar = ["hello"]
class Child(Parent):
# This does not work
foobar = foobar.extend(["world"])
ve var Çocuk’un bir örneği, “dünya” listeye eklenir, bu da istenmeyen bir durumdur. Ben daha da değiştirebilir:
class Child(Parent):
def __init__(self):
if type(self).foobar.count("world") < 1:
type(self).foobar.extend(["world"])
ama işe yarıyor önce Çocuk bir örneğini gerekir çünkü bu hala kesmek.
Daha iyi bir yolu var mı?
Bu fevkalade parlak ve basit! Ayrıca, çocuğun özniteliğinin başlangıç değerinin ebeveynin özniteliği ile aynı olması gerekiyorsa, kopya ithal derin bilgisinden yararlanmanın yararı olacaktır; foobar = deepcopy (Parent.foobar) – zen11625