Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么getter和setter不适用于代码中的一个类,而适用于其他类_Python_Python 3.x - Fatal编程技术网

Python 为什么getter和setter不适用于代码中的一个类,而适用于其他类

Python 为什么getter和setter不适用于代码中的一个类,而适用于其他类,python,python-3.x,Python,Python 3.x,我不明白为什么我的getter和setter在代码的前两个类中工作,而在第三个类中却不工作 我看了类似的问题,但能找到一个对我有帮助的,对不起,如果有什么我错过了。我对Python还是有点陌生,所以我意识到它可能是我刚刚错过或还没有意识到的东西 我的代码: class Person(): intTotalPeople=int(0) 定义初始(自我、名、姓、性别、年龄): '获取姓名、性别、性别和年龄' self.firstName=firstName self.lastName=lastName

我不明白为什么我的getter和setter在代码的前两个类中工作,而在第三个类中却不工作

我看了类似的问题,但能找到一个对我有帮助的,对不起,如果有什么我错过了。我对Python还是有点陌生,所以我意识到它可能是我刚刚错过或还没有意识到的东西

我的代码:

class Person():
intTotalPeople=int(0)
定义初始(自我、名、姓、性别、年龄):
'获取姓名、性别、性别和年龄'
self.firstName=firstName
self.lastName=lastName
self.gender=性别
self.age=年龄
@财产
def名字(自我):
返回自己的名字
@财产
def lastName(self):
返回self.\u lastName
@财产
性别(自我):
回归自我
@财产
年龄(自我):
回归自我
@firstName.setter
def名字(自我,名字):
如果名字!=str(名字):
raise异常('firstName应仅包含字母。输入的值为:{}'。格式(firstName))
其他:
self.\uu firstName=firstName
@lastName.setter
def lastName(self,lastName):
如果姓氏!=str(姓氏):
引发异常('lastName应仅包含字母。输入的值为:{}'。格式(lastName))
其他:
self.\uu lastName=lastName
@年龄设定者
定义年龄(自我、年龄):
如果年龄==int(年龄):
自我。年龄=年龄
elif年龄==浮动(年龄):
自我。年龄=年龄
其他:
引发异常('年龄应仅包含数字。输入的值为:{}'。格式(年龄))
@性别设定者
定义性别(自我,性别):
如果性别==“女性”:
自我。性别=性别
elif性别==“男性”:
自我。性别=性别
其他:
raise Exception('性别必须仅为男性或女性。输入的值为:{}'。格式(性别))
班级学生(人):
“与当前学生相关的数据类”
intTotalFemale=int(0)
intTotalMale=int(0)
dblTotalGPA=浮点(0)
dblAverageGPA=浮动(0)
intTotalFemaleAge=int(0)
intTotalMaleAge=int(0)
dblAverageFemaleAge=float(0)
dblAverageMaleAge=float(0)
定义初始(自我、名、姓、性别、年龄、GPA):
Person.\uuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
self.GPA=GPA
Person.intTotalPeople+=1
Student.dblTotalGPA+=self.GPA
如果self.gender==“女性”:
Student.intTotalFemale+=1
Student.intTotalFemaleAge+=self.age
其他:
Student.intTotalMale+=1
Student.intTotalMaleAge+=self.age
@财产
def GPA(自我):
返回自我。\uu GPA
@GPA.setter
def GPA(自我,GPA):
如果GPA<0:
raise异常('GPA必须为零或更大。输入的值为:{}'。格式(GPA))
elif GPA>4.0:
raise Exception('GPA必须小于等于4.0。输入的值为:{}'。格式(GPA))
其他:
自我评价。uu GPA=GPA
def平均GPA(自身):
Student.dblAverageGPA=Student.dblTotalGPA/Person.intTotalPeople
按性别(自身)划分的def平均值:
如果self.gender==“女性”:
Student.dblAverageFemaleAge=Student.intTotalFemaleAge/Student.intTotalFemaleAge
其他:
Student.dblAverageMaleAge=Student.intTotalMaleAge/Student.intTotalMaleAge
定义(自我):
返回“\n平均成绩:”+str(Student.dblAverageGPA)+“\n男性毕业生的平均年龄:”+str(
Student.dblAverageMaleAge)+“\n女毕业生平均年龄:”+str(Student.dblAverageMaleAge)
班级研究生(学生):
intFemaleJobs=int(0)
intMaleJobs=int(0)
intTotalGrads=int(0)
定义初始(自我、名、姓、性别、年龄、GPA、毕业年份、工作状态):
学生.uuu初始(自我、名、姓、性别、年龄、GPA)
self.gradYear=gradYear
self.jobStatus=作业状态
Graduate.intTotalGrads+=1
如果self.gender==“女性”:
如果self.jobStatus==“Y”:
毕业生。女性就业+=1
其他:
如果self.jobStatus==“Y”:
毕业生就业人数+=1
@财产
年份(自我):
回归自我。今年
@财产
def作业状态(自我):
返回自己的作业状态
@二传手
def GradYear(自我,GradYear):
如果gradYear==int(gradYear):
self.\uu gradYear=gradYear
其他:
raise异常('gradYear必须采用YYYY格式。输入的值为:{}。格式(gradYear))
@JobStatus.setter
def作业状态(自身、作业状态):
如果作业状态!=“Y”:
引发异常('作业状态必须为Y或N。输入的值为:{}'。格式(作业状态))
elif jobStatus!=“N”:
引发异常('作业状态必须为Y或N。输入的值为:{}'。格式(作业状态))
其他:
self.\uu jobStatus=作业状态
定义(自我):
返回“研究生总数”:+str(self.intTotalGrads)+Student.\uu str__(
self)+“\n有工作的男性毕业生总数:“+str”(
Graduate.intMaleJobs)+“\n有工作的女性毕业生总数:“+str(Graduate.intMaleJobs)
#导入StudentClass文件以访问学生类
导入学生类
# ---------------------------------------------------
#主叫研究生班,包括名字,
#姓氏、性别、GPA、年龄、毕业年份、,
#和工作状态的争论
#并显示总数和平均数
# ---------------------------------------------------
objStudent1=学生班。毕业生(“凯蒂”、“施密特”、“女性”,2009年4月29日,“Y”)
objStudent2=学生班。毕业生(