会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132440个问题
JAVA 全系列/第二阶段:JAVA 基础深化和提高/手写服务器项目(旧) 19291楼

class Employee:       # 创建Employee雇员类
    id = 1000         # 在类属性中设置默认其实id为1000

    def __init__(self, name, salary):   # 构建包含实例name、salary属性得构造方法
        self.name = name
        self.__salary = salary            # 给实例属性赋初值
        self.id += 1                    # 每调用依次构造方法雇员得id就增加1

    def __add__(self, other):   # 重新定义+方法
        sum_salary = self.__salary + other.__salary  # 在+方法中计算薪水和
        return sum_salary       # 返回薪水和

    @property
    def salary(self):
        return self.__salary

    @salary.setter
    def salary(self, salary):
        if 1000 < salary < 50000:
            self.__salary = salary
        else:
            print("输入错误,请重新输入1000-50000之间的数")


e1 = Employee("小余", 2000)
e2 = Employee("小黄", 20000)
sum = e1+e2
print(sum)

这段代码运行没有问题,但是当我把salary变成非私有实例属性,代码如下,就出问题

class Employee:       # 创建Employee雇员类
    id = 1000         # 在类属性中设置默认其实id为1000

    def __init__(self, name, salary):   # 构建包含实例name、salary属性得构造方法
        self.name = name
        self.salary = salary            # 给实例属性赋初值
        self.id += 1                    # 每调用依次构造方法雇员得id就增加1

    def __add__(self, other):   # 重新定义+方法
        sum_salary = self.salary + other.salary  # 在+方法中计算薪水和
        return sum_salary       # 返回薪水和

    @property
    def salary(self):
        return self.salary

    @salary.setter
    def salary(self, salary):
        if 1000 < salary < 50000:
            self.salary = salary
        else:
            print("输入错误,请重新输入1000-50000之间的数")


e1 = Employee("小余", 2000)
e2 = Employee("小黄", 20000)
sum = e1+e2
print(sum)

image.png这是为啥

Python 全系列/第一阶段:Python入门/面向对象 19292楼
Python 全系列/第五阶段:数据库编程/MySQL数据库的使用 19295楼
Python 全系列/第五阶段:数据库编程/MySQL数据库的使用 19298楼
Python 全系列/第七阶段:网页编程基础/JavaScript 19300楼
Python 全系列/第一阶段:Python入门/序列 19301楼
JAVA 全系列/第三阶段:数据库编程/数据库设计范式 19302楼
WEB前端全系列/第二阶段:JavaScript编程模块/运算符_数据类型和流程循环语句 19303楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637