Python中的类及其实现
我正在尝试创建一个Python脚本WageEarner,它可以导入我的PersonWorker类。我需要它提示输入一个人的名字、姓氏和电话号码,因为它将使用用户提供的信息创建PersonWorker对象。我需要它来提示用户一周的工作时间和工资率。它将通过调用该对象的getWeeksPay方法打印PersonWorker对象和周薪。我是Python新手,所以我不熟悉如何做到这一点 这是我的PersonWorker类:Python中的类及其实现,python,class,Python,Class,我正在尝试创建一个Python脚本WageEarner,它可以导入我的PersonWorker类。我需要它提示输入一个人的名字、姓氏和电话号码,因为它将使用用户提供的信息创建PersonWorker对象。我需要它来提示用户一周的工作时间和工资率。它将通过调用该对象的getWeeksPay方法打印PersonWorker对象和周薪。我是Python新手,所以我不熟悉如何做到这一点 这是我的PersonWorker类: 首先,到目前为止你写了什么?你被卡在哪一部分?第二,_init_和_str_不起
首先,到目前为止你写了什么?你被卡在哪一部分?第二,_init_和_str_不起作用;你需要在每一端加上两个下划线。这是Python 2还是Python 3?如果是2,您应该为第一行编写类PersonWorkerobject:。最后,您要反复替换stringRep,而不是添加到它;您可能希望第二行和第三行使用+=而不是=。@abarnert我假设他们在做同一个作业,无论老师给您什么作业来查找python属性,这个getter/setter业务都不会飞到这里。@RyanHaining:+1…或者,更好的是,找一个真正懂python的老师,或者一本书或者一篇教程。OP仍然可以出现在课堂上交作业;当人们忙于学习如何为每一行Python编写30行Java风格的样板文件而无法获得任何正确的实际代码时,获得A应该很容易……什么问题?你没有问任何问题。别担心,如果他们把这个作为家庭作业提交,老师会感到困惑,因为它看起来不像Java。
class PersonWorker:
def _init_(self, firstName, lastName, phoneNo, rate=0):
self.firstName= firstName
self.lastName= lastName
self.phoneNo= phoneNo
self.rate= rate
def getFirstName(self):
return self.firstName
def getLastName(self):
return self.lastName
def getPhoneNo(self):
return self.phoneNo
def getWeeksPay(self,hours):
if rate is 0: raise Exception("Rate not set")
return hours*self.rate
def _str_(self):
stringRep = "First Name: " + self.firstName + "\n"
stringRep = "Last Name: " + self.lastName + "\n"
stringRep = "Phone Number : " + self.phoneNo + "\n"
return stringRep
'''
This code released under the ijustmadethisup license
You are free to redistribute, modify, reuse, whatever, for any purpose
that does not violate the following conditions:
1) You may not submit this as your own work for a homework assignment
2) You must include this license in any distribution of the code
thanks for reading
'''
class PersonWorker(object):
def __init__(self, first_name, last_name, phone_number, rate=0):
self._first_name= first_name
self._last_name= last_name
self._phone_number= phone_number
self._rate= rate
@property
def first_name(self):
return self._first_name
@property
def last_name(self):
return self._last_name
@property
def phone_number(self):
return self._phone_number
def weeks_pay(self, hours):
if self._rate == 0:
raise ValueError('Rate not set')
return hours*self._rate
def __str__(self):
return 'First Name: {0}\nLast Name: {1}\nPhone Number: {2}'.format(
self.first_name, self.last_name, self.phone_number)
def main():
first_name = raw_input('Enter first name: ')
last_name = raw_input('Enter last name: ')
phone_number = raw_input('Enter phone number: ')
rate = float(raw_input('Enter rate: '))
pw = PersonWorker(first_name, last_name, phone_number, rate)
hours = float(raw_input('Enter hours worked: '))
print pw
print 'Pay:', pw.weeks_pay(hours)
if __name__ == '__main__':
main()