我是python的初学者…我写这段代码期望输出为
global name:xxx
derived class
base class
globally declared function has been called
globally declared function has been called
但我得到了以下结果
Global name:xxx
derived class
derived class
base class
None
Globally declared function has been called
Globally declared function has been called
实际逻辑是什么?我哪里出错了?你知道吗
这是我的密码:
Name=raw_input("Global name:")
def display():
print "Globally declared function has been called"
class base(object):
def __init__(self):
self.bname='base class'
print self.bname
def bfun1(self):
display()
class derived(base):
def __init__(self):
self.dname="derived class"
print self.dname
def bshow(self):
self.bsname=raw_input(super(derived,self).__init__())
print self.bsname
display()
ob=derived()
ob.__init__()
ob.bshow()
ob.bfun1()
您不需要显式调用
.__init__()
。当您创建对象时,它已经被调用;ob = derived()
为您调用.__init__()
。你知道吗稍后,在
bshow()
中显式调用base.__init__()
,但被包装在raw_input()
调用中。因为base.__init__()
没有显式的return
语句(它不应该有),所以raw_input()
打印函数的默认返回值None
。你知道吗以下代码将更接近您的预期:
相关问题 更多 >
编程相关推荐