使用类处理if-else函数,但不能在elif函数中使用变量

2024-09-24 00:33:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过类创建一个id,但我有一个名为showPersonel的函数来显示id。程序一直说personel1没有定义,所以我该怎么做

    import os

class personel:
    def __init__(self,firstName,lastName,age,position):
        self.firstName=firstName
        self.lastName=lastName
        self.age=age
        self.position=position
    def personelPrint(self):
        print("Personelin ismi:",self.firstName)
        print("Personelin soyadı:",self.lastName)
        print("Personelin yaşı:",self.age)
        print("Personelin pozisyonu:",self.position)

print("="*30)
print("="*13,"Menü","="*13)
print("="*30)
print()
print("Personel kaydı oluştur. (newPersonel)")
print("Personel görüntüle. (showPersonel)")
print()

menuAnswer=input()

if menuAnswer == "newPersonel":
    personel1 = personel(input("Personel ismi giriniz: "),input("Personel soyadını giriniz: "),input("Personel yaşını giriniz: "),input("Personel pozisyonunu giriniz:"))

elif menuAnswer == "showPersonel":
    personel.personelPrint(personel1)

Tags: selfidinputagepositionfirstnameprintlastname
2条回答

您的代码中存在一些问题,这些问题已在注释中解决

import os

# Class name should be CamelCase, Personel not personel
class Personel:
    def __init__(self, firstName=None, lastName=None, age=None, position=None):
        self.firstName=firstName
        self.lastName=lastName
        self.age=age
        self.position=position

    def personelPrint(self):
        print("Personelin ismi:",self.firstName)
        print("Personelin soyadı:",self.lastName)
        print("Personelin yaşı:",self.age)
        print("Personelin pozisyonu:",self.position)

# An empty list to store the objects
personel_list = []

# Initialise the menuAnswer
menuAnswer = None

# Loop until menuAnswer is 'exit'
while (menuAnswer != 'exit'):
    print("="*30)
    print("="*13,"Menü","="*13)
    print("="*30)
    print()
    print("Personel kaydı oluştur. (newPersonel)")
    print("Personel görüntüle. (showPersonel)")
    print("Exit. (exit)")
    print()

    menuAnswer = input()

    if menuAnswer == "newPersonel":
        # Add a new Personel object to the list
        personel_list.append(Personel(input("Personel ismi giriniz: "),input("Personel soyadını giriniz: "),input("Personel yaşını giriniz: "),input("Personel pozisyonunu giriniz:")))
    elif menuAnswer == "showPersonel":
        # Display the list of Personel entries
        for person in personel_list:
            person.personelPrint()

问题在于:

menuAnswer=input()

if menuAnswer == "newPersonel":
    personel1 = personel(input("Personel ismi giriniz: "),input("Personel soyadını giriniz: "),input("Personel yaşını giriniz: "),input("Personel pozisyonunu giriniz:"))

menuAnswer只能获取一个输入,当它获取newPersonel时,它创建personel1对象,但当它获取showPersonel时,程序没有创建personel1

elif menuAnswer == "showPersonel":
    personel.personelPrint(personel1)

你应该每次都给新人,这样才行

相关问题 更多 >