Chinaunix

标题: 子类调用父类的方法没有返回值,很以为,麻烦大佬看看,实在想不出是什么原因,多谢了 [打印本页]

作者: 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个实例menge
    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就可以了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2