免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 36414 | 回复: 3
打印 上一主题 下一主题

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 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,一直没想明白




论坛徽章:
0
2 [报告]
发表于 2020-08-01 15:50 |只看该作者
有大佬帮忙看看嘛

论坛徽章:
0
3 [报告]
发表于 2020-08-01 17:36 |只看该作者
有没有大佬讲解下 歇息

论坛徽章:
0
4 [报告]
发表于 2020-08-04 22:09 |只看该作者
这个是作用域嵌套,在Person.moneyUp(self, percent + spic)前面加个return就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP