Python中的类及其实现

Python中的类及其实现,python,class,Python,Class,我正在尝试创建一个Python脚本WageEarner,它可以导入我的PersonWorker类。我需要它提示输入一个人的名字、姓氏和电话号码,因为它将使用用户提供的信息创建PersonWorker对象。我需要它来提示用户一周的工作时间和工资率。它将通过调用该对象的getWeeksPay方法打印PersonWorker对象和周薪。我是Python新手,所以我不熟悉如何做到这一点 这是我的PersonWorker类: 首先,到目前为止你写了什么?你被卡在哪一部分?第二,_init_和_str_不起

我正在尝试创建一个Python脚本WageEarner,它可以导入我的PersonWorker类。我需要它提示输入一个人的名字、姓氏和电话号码,因为它将使用用户提供的信息创建PersonWorker对象。我需要它来提示用户一周的工作时间和工资率。它将通过调用该对象的getWeeksPay方法打印PersonWorker对象和周薪。我是Python新手,所以我不熟悉如何做到这一点

这是我的PersonWorker类:


首先,到目前为止你写了什么?你被卡在哪一部分?第二,_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()