# -*- coding: utf-8 -*-
class partner(object):
_table = 'partner'
def sendsms(self):
print "I am partners"
def sendemail(self):
print "send email"
class student(partner):
_inherit = 'partner'
_table = 'student'
def sendsms(self):
print "I am student"
print "@@", self._inherit
print "###", self._table
super(student,self).sendsms()
class student(student):
_inherit = 'student'
def fees(self):
print "1000 INR"
t = student()
t.sendsms()
这将进行递归,问题或继承问题是什么?
答案 0 :(得分:1)
class student(student):
是一行代码,根本没有意义。如果您执行类似
# -*- coding: utf-8 -*-
class partner(object):
_table = 'partner'
def sendsms(self):
print "I am partners"
def sendemail(self):
print "send email"
class student(partner):
_inherit = 'partner'
_table = 'student'
def sendsms(self):
print "I am student"
print "@@", self._inherit
print "###", self._table
super(student,self).sendsms()
class student2(student):
_inherit = 'student'
def fees(self):
print "1000 INR"
t = student2()
t.sendsms()
相反,它可以工作,但这可能不是你想要做的。没有进一步的解释,我们无法真正帮助你。
BTW,上面的代码给出了:
I am student
@@ partner
### student
I am partners
答案 1 :(得分:1)
super(student,self).sendsms()
获取全局名称student
(在调用时,第二个),获取其父级(第一个)并调用其.sendsms()
。 Voilà你的递归。
解决方案是重命名你的第二个类,这样第一个名字就不会被遮蔽。