Python中文
首页
教程
问答
标签
搜索
登录
注册
Python中的继承删除原始值
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我用Python编写了一个小的继承问题:</p> <pre><code>class Worker: def __init__(self,cod): self.cod=cod self.wage=0 class FactoryWorker(Worker): def __init__(self,cod,wage): Worker.__init__(self,cod,wage) Worker.wage=wage*1.10 def printWage(self): return Worker.wage class OfficeWorker(Worker): def __init__(self,cod,payperHour,numberHours): Worker.__init__(self,cod) self.payperHour=payperHour self.numberHours=numberHours def printWage(self): Worker.wage=self.payperHour*self.numberHours return Worker.wage </code></pre> <p>我遇到的问题是,当我制作两个对象时:</p> <pre><code>w1=FactoryWorker(2130,4000) w1.printWage() prints 4400 w2=OfficeWorker(1244,50,100) w2.printWage() prints 5000 </code></pre> <p>但如果我再这样做:</p> <pre><code>w1.printWage() </code></pre> <p>它不打印原来的4400,而是打印5000</p> <p>为什么?我希望可变工资被声明为类Worjer的一个属性,而不是在每个子类中单独声明。你知道吗</p> <p>有什么帮助吗?你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您的问题是<code>Worker.wage</code>是<em>类</em>成员,这意味着该类的所有实例将共享相同的值。您只需要<code>self.wage</code>,它是一个<em>实例</em>成员,这意味着类的每个实例都有自己的值。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
4 回答
无法使用Django\u mssql\u后端迁移到外部hos
6 回答
无法使用Django&Python3.4连接到MySql
1 回答
无法使用Django+nginx上载媒体文件
4 回答
无法使用Django1.6导入名称模式
10 回答
无法使用Django1.7和mongodb登录管理站点
10 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
9 回答
无法使用Djangockedi验证CBV中的字段
5 回答
无法使用Djangocketditor上载图像(错误400)
7 回答
无法使用Djangocron进行函数调用
8 回答
无法使用Djangofiler djang上载文件
6 回答
无法使用Djangokronos
5 回答
无法使用Djangomssql provid
7 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
6 回答
无法使用Djangomssq迁移Django数据库
4 回答
无法使用Djangonox创建用户
7 回答
无法使用Djangopyodb从Django查询SQL Server
6 回答
无法使用Djangopython3ldap连接到ldap
2 回答
无法使用Djangoredis连接到redis
3 回答
无法使用Django中的FK创建新表
10 回答