mabulimeng 发表于 2020-08-01 15:48

子类调用父类的方法没有返回值,很以为,麻烦大佬看看,实在想不出是什么原因,多谢了

定义一个Person类:
#!/usr/bin/env python
# -*- coding=utf-8 -*-
# @File: person1.py
# @Author: Meng Li
# @Date: 2020/7/31 0031
# @Desc: PangDuDu
class Person:
#至少定义一个方法,初始化类的方法
    def __init__(self,name,age,pay=0,job=None):
      self.name = name
      self.age = age
      self.pay = pay
      self.job = job
#定义一个方法
    def moneyUp(self,percent):
       return self.pay * (1.0 + percent)

if __name__ == '__main__':
#创建2个实例meng,e
    meng = Person("meng li",30,20000,"network")
    e = Person("e yuan",27,8000,"money")
    print(meng.pay)
    print(meng.moneyUp(0.1))输出为:2000022000.0
然后在定义一个子类Manager:#!/usr/bin/env python
# -*- coding=utf-8 -*-
# @File: manager.py
# @Author: Meng Li
# @Date: 2020/8/1 0001
# @Desc: PangDuDu
#通过Person1模块导入Person类,进行继承
from person1 import Person
#继承
class Manager(Person):
    def moneyUp(self,percent,spic=0.1):
      Person.moneyUp(self, percent + spic)
if __name__ == '__main__':#两个实例
    meng = Person("meng li", 30, 20000, "network")
    lili = Manager("lili li", 40, 30000, "manager")#分别打印两个输出
    print(meng.moneyUp(0.1))
    print(lili.moneyUp(0.1))输出如下:22000.0None
但是第一个print有输出,第二个一直打印None,求哪位大佬解释一下小弟初学python,一直没想明白




mabulimeng 发表于 2020-08-01 15:50

有大佬帮忙看看嘛

mabulimeng 发表于 2020-08-01 17:36

有没有大佬讲解下 歇息

灿烂小猪 发表于 2020-08-04 22:09

这个是作用域嵌套,在Person.moneyUp(self, percent + spic)前面加个return就可以了。
页: [1]
查看完整版本: 子类调用父类的方法没有返回值,很以为,麻烦大佬看看,实在想不出是什么原因,多谢了