You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python类变量raise_amount与实例salary相乘返回None问题求助

问题根因

你写的apply_raise方法没有设置显式返回值,Python中所有函数/实例方法如果没有写return语句,默认会返回None,因此你直接打印该方法的调用结果就会输出None。
补充说明:你写的调薪逻辑本身是生效的,调用方法后实例的salary属性已经被更新,只是方法本身没有返回值,所以打印调用结果得到None。

另外你调用实例方法的写法可以更规范,不需要通过类名传递实例参数,直接用实例调用即可。


修复方案

根据你的使用需求可以选两种修改方式:

方式1:需要方法直接返回调薪后的薪资

修改apply_raise方法,新增return语句:

def apply_raise(self):
    self.salary =  int(Person.raise_amount * self.salary)
    # 新增返回调薪后薪资
    return self.salary

调用时改用规范的实例调用写法:

print(prs_1.apply_raise())
print(prs_2.apply_raise())
print(prs_3.apply_raise())

方式2:不需要方法返回值,仅更新实例薪资属性

先调用方法更新属性,再打印实例的salary属性或者你已经实现的street_name_and_house_nr_salary方法即可:

# 先调用方法更新薪资
prs_1.apply_raise()
prs_2.apply_raise()
prs_3.apply_raise()
# 再打印结果
print(prs_1.salary)
print(prs_2.street_name_and_house_nr_salary())
print(prs_3.salary)

内容的提问来源于stack exchange,提问作者Kinsley. N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:27:03