发布于2021-01-17 16:24 阅读(820) 评论(0) 点赞(4) 收藏(0)
0
1
2
3
4
5
6
7
8
9
当我尝试运行此代码时:
class Person:
def __init__(self, name, age, height):
self.name = name
self.age = age
self.height = height
def __str__(self):
return "Name: {}, Age: {}, Height: {}".format(self.name, self.age, self.height)
def get_older(years):
self.age += years
class Worker(Person):
def __init__(self, name, age, height, salary):
super(Worker, self).__init__(name, age, height)
self.salary = salary
def calc_yearly_salary(self):
return salary * 12
worker1 = Worker('Henry', 42, 178, 3350)
print(worker1)
print(worker1.calc_yearly_salary())
它无法识别工资属性,因此出现以下错误,提示“工资”未定义:
runfile('C:/Users/Jorge87/Desktop/Master Tema 1.5/inheritance_practice.py',
wdir='C:/Users/Jorge87/Desktop/Master Tema 1.5')
Name: Henry, Age: 42, Height: 178
Traceback (most recent call last):
File "<ipython-input-11-07b76e08cf24>", line 1, in <module>
runfile('C:/Users/Jorge87/Desktop/Master Tema 1.5/inheritance_practice.py',
wdir='C:/Users/Jorge87/Desktop/Master Tema 1.5')
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line
827, in runfile
execfile(filename, namespace)
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line
110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/Jorge87/Desktop/Master Tema 1.5/inheritance_practice.py", line 32, in <module>
print(worker1.calc_yearly_salary())
File "C:/Users/Jorge87/Desktop/Master Tema 1.5/inheritance_practice.py", line 28, in
calc_yearly_salary
return salary * 12
NameError: name 'salary' is not defined
我的代码有什么问题?另外,它似乎无法识别定义的变量“ get_older(years)”中的“ years”属性
在您的Worker
课程中,您需要使用而不是来引用salary
属性。self.salary
salary
def calc_yearly_salary(self):
return self.salary * 12
0
1
2
3
4
5
6
7
作者:黑洞官方问答小能手
链接: https://www.pythonheidong.com/blog/article/777230/df077c57cf6ac40c499c/
来源: python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系z452as@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!