Traceback (most recent call last):
File "C:/Users/cenni/OneDrive/Desktop/Computer science work and notes/Chapter 11 #1.py", line 20, in <module>
main()
File "C:/Users/cenni/OneDrive/Desktop/Computer science work and notes/Chapter 11 #1.py", line 18, in main
print('Your name is ' + self.name(), + ' your employee number is ' + self.number(), + 'your shift number is ', + self.Snumber(), + ' your pay is ', + self.pay(), ' an hour.')
NameError: name 'self' is not defined
class Employee:
def __init__(self, name, number, Snumber, Pay):
self.name = name
self.number = number
def ProductionWorker(self, Snumber, pay):
self.Snumber = Snumber
self.pay = pay
def main():
employee_name = input("Please enter your name: ")
employee_number = input("Please enter your employee number: ")
employee_Snumber = input("Please enter your shift number: ")
employee_pay = input("Please enter your hourly wage: ")
employee_info = Employee(employee_name, employee_number, employee_Snumber, employee_pay)
print('Your name is ' + self.name(), + ' your employee number is ' + self.number(), + 'your shift number is ', + self.Snumber(), + ' your pay is ', + self.pay(), ' an hour.')
main()
我不确定如何解决这个问题。我正在尝试设计一个程序,打印所有的类和子类的值。
self
是类方法中的局部变量。在这些方法之外,包含雇员的变量是employee_info
,所以在print()
调用中使用它。
__init__()
需要调用self.productionWorker()
来设置self.Snumber
和self.pay
。
在print()
调用中,不应该在employee_info.name
之后有()
。这些是数据属性,而不是方法,所以不要调用它们。
class Employee:
def __init__(self, name, number, Snumber, Pay):
self.name = name
self.number = number
self.productionWorker(Snumber, Pay)
def ProductionWorker(self, Snumber, pay):
self.Snumber = Snumber
self.pay = pay
def main():
employee_name = input("Please enter your name: ")
employee_number = input("Please enter your employee number: ")
employee_Snumber = input("Please enter your shift number: ")
employee_pay = input("Please enter your hourly wage: ")
employee_info = Employee(employee_name, employee_number, employee_Snumber, employee_pay)
print('Your name is ' + employee_info.name, + ' your employee number is ' + employee_info.number, + 'your shift number is ', + employee_info.Snumber, + ' your pay is ', + employee_info.pay, ' an hour.')
main()