<p>可以使用dict映射将移位到“1”和“2”,然后使用实例移位值进行查找。你知道吗</p>
<pre><code>class ProductionWorker(employee.Employee):
def __init__(self, name, number, shift, pay):
employee.Employee.__init__(self, name, number)
self.shifts = {"1":"Day shift","2":"Night shift"}
def main():
name = input("Enter the users name: ")
number = input("Enter the users number: ")
shift = input("Enter the users shift (1, 2): ")
pay = input("Enter the users hourly pay rate: ")
employee = ProductionWorker.ProductionWorker(name, number, shift, pay)
empShift = employee.get_shift()
print(employee)
print(employee.shifts[empShift])
main()
</code></pre>
<p>如果类中需要,可以使用方法,逻辑基本相同。你知道吗</p>
<p>要使用<code>__str__</code>打印所有详细信息,只需在<code>get_shift</code>方法中进行查找,而不只是返回self。\u shift:</p>
<pre><code>class ProductionWorker.ProductionWorker(Employee):
def __init__(self, name, number, shift, pay):
employee.Employee.__init__(self, name, number)
self.shifts = {"1": "Day shift", "2": "Night shift"}
self.__shift = shift
self.__pay = pay
def set_shift(self, shift):
self.__shift = shift
def set_pay(self, pay):
self.__pay = pay
def get_shift(self):
return self.shifts[self.__shift]
def get_pay(self):
return self.__pay
def dayNight(self, shift):
return self.shifts[shift]
def __str__(self):
return "\nName: {}\nNumber: {}\nShift: {}\nPay: {}".\
format(self.get_name(), self.get_number(), self.dayNight(self.get_shift()), self.__pay)
</code></pre>
<p>输出:</p>
<pre><code>Enter the users name: foo
Enter the users number: 1234
Enter the users shift (1, 2): 2
Enter the users hourly pay rate: 100
Name: foo
Number: 1234
Shift: Night shift
Pay: 100
</code></pre>
<p>如果要将DayNight方法与If/else结合使用,则必须将其与字符串(而不是int)进行比较,最简单的方法就是返回字符串:</p>
<pre><code> def set_shift(self, shift):
self.__shift = shift
def set_pay(self, pay):
self.__pay = pay
def get_shift(self):
return self.__shift
def get_pay(self):
return self.__pay
def dayNight(self, shift):
if shift == "1":
return"Day Shift"
else:
return "Night Shift"
def __str__(self):
return "\nName: {}\nNumber: {}\nShift: {}\nPay: {}".\
format(self.get_name(), self.get_number(), self.dayNight(self.get_shift()), self.__pay)
</code></pre>