我在这里做错了什么(试图打印员工类)


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.Snumberself.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()

相关内容

最新更新