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
个实例
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.0
None
但是第一个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