我应该创建三个类:父母,孩子1和孩子2 子级1和2应该从Parent类继承。 所以我相信我已经做到了。
class Parent:
"""Parent Object"""
def __init__(self):
self.greeting = "Hi I'm a Parent Object!"
class ChildA(Parent):
def __init__(self):
childclass.__init__(self)
self.childgreeting = "Hi I'm a Child Object!"
class ChildB(Parent):
pass
现在我必须编写一个父对象和子对象,它们将打印出各自的字符串 这就是我感到困惑的地方:我已经在他们的班级中输入了他们是孩子或父对象的字符串 但是如何让它们作为对象打印?
我已经开始使用这样的代码了。
class Parent(object):
class ChildA(object):
class ChildB(object):
如何让这些字符串打印出来让我烦恼 而且我觉得我的ChildA代码也不正确。
任何人都可以帮助我吗?
答案 0 :(得分:1)
孩子1和2应该从Parent类继承。所以我相信我已经做到了
是的,在第一个代码中,您有,但不在第二个代码中。
我必须编写父对象和子1和2对象,这些对象将打印出各自的字符串
好的......
p = Parent()
child_a = ChildA()
print(p.greeting)
print(child_a.childgreeting)
然而 - ChildA()
无法正常工作,因为__init__
应该是这样的
class ChildA(Parent):
def __init__(self):
super().__init__() # This calls the Parent __init__
self.childgreeting = "Hi I'm a Child Object!"
现在,上面的代码将起作用。
但是,我假设您希望覆盖greeting
属性?否则你得到这个
print(child_a.greeting) # Hi I'm a Parent Object!
print(child_a.childgreeting) # Hi I'm a Child Object!
如果是这种情况,您只需将childgreeting
更改为greeting
即可。然后,从第一个例子
print(p.greeting) # Hi I'm a Parent Object!
print(child_a.greeting) # Hi I'm a Child Object!
如何让它们作为对象打印?
不完全确定您的意思,但如果您定义__str__
以返回greeting
class Parent:
"""Parent Object"""
def __init__(self):
self.greeting = "Hi I'm a Parent Object!"
def __str__(self):
return self.greeting
现在的例子变成了
print(p) # Hi I'm a Parent Object!
print(child_a) # Hi I'm a Child Object!
答案 1 :(得分:0)
class Parent(object):
def __init__(self):
self.greeting = "Hi I am a parent"
def __str__(self):
return self.greeting
class Child(Parent):
def __init__(self):
super(Child, self).__init__()
self.greeting = "Hi I am Child"
def __str__(self):
return self.greeting
p = Parent()
print(p)
c = Child()
print(c)
此方法可以帮助您使用' print()'声明打印个别班级的问候语。但是如果你想直接获得self.greeting属性,你应该使用
p = Parent()
print(p.greeting)
希望我理解你,因为你的问题似乎没有得到恰当的解释......