#python
class Parent(object):
def __init__(self):
pass
def print_sth(self):
print self.name
class ChildA(Parent):
def __init__(self):
self.name = 'childA'
super(ChildA, self).__init__()
class ChildB(Parent):
def __init__(self):
self.name = 'childB'
super(ChildB, self).__init__()
class ChildC(Parent):
def __init__(self):
self.name = 'childC'
super(ChildC, self).__init__()
children = [
ChildA(),
ChildB(),
ChildC()
]
for child in children:
child.print_sth()
父类有个方法是要用到子类的属性的,然后这个属性又是 hardcode,这样写能跑,但是感觉好像不太好,又想不到其他的方法,面向对象老司机能给点建议吗?
1
wwqgtxx 2017-08-17 21:32:28 +08:00 via iPhone 1
在父类的__init__中定义这个 name,然后给父类的__init__加上 name 这个参数,子类在调用 super 的时候把 name 传进去就好了
|