如何使子类中的姓名与父类中相同,在不重复输入的情况下

class Person():
def init(self,name='ming',age=20,gender='men'):
self.name=name
self.age=age
self.gender=gender
def ShowN(self):
n=input('请输入姓名:')
return n
def ShowA(self):
a=int(input('请输入年龄:'))
return a
def ShowG(self):
g=input('请输入性别:')
return g
def show1(self):
print('姓名:%s,年龄:%d,性别:%s'%((self.ShowN(),self.ShowA(),self.ShowG())))
class Teacher(Person):
def init(self,a='math',b='dq'):
super().init(name='ming',age=20,gender='men')
self.a=input('请输入所在部门:')
self.b=input('请输入教学科目:')
def show(self):
n=self.ShowN()
print('%s老师所在单位为%s,教授%s科目'%(n,self.a,self.b))
p=Person()
t=Teacher()
p.show1()
t.show()

    n=self.ShowN()

改成

    n=self.name

你题目的解答代码如下:

class Person():
    def __init__(self,name='ming',age=20,gender='men'):
        self.name=name
        self.age=age
        self.gender=gender
    def ShowN(self):
        self.name=input('请输入姓名:')
        return self.name
    def ShowA(self):
        self.age=int(input('请输入年龄:'))
        return self.age
    def ShowG(self):
        self.gender=input('请输入性别:')
        return self.gender
    def show1(self):
        print('姓名:%s,年龄:%d,性别:%s'%((self.ShowN(),self.ShowA(),self.ShowG())))
class Teacher(Person):
    def __init__(self,a='math',b='dq'):
        super().__init__(name='ming',age=20,gender='men')
        self.a=input('请输入所在部门:')
        self.b=input('请输入教学科目:')
    def show(self):
        n=self.name  #ShowN()改成name
        print('%s老师所在单位为%s,教授%s科目'%(n,self.a,self.b))
t=Teacher()
t.show1()
t.show()

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img