首页 > 解决方案 > NameError:命名类实例时未定义名称“xxx”

问题描述

当用用户定义的属性命名一个对象时,它说对象的名称(NameError)没有被使用..

这是从名为“Dog”的类创建具有用户定义属性的对象的部分:

def menu():
print('1. Register a new dog')
print('2. Ammend dog deatils')
print('3. Remove dog')
choice = int(input('>> '))
if choice == 1:
    Name = input('Name >> ').title()
    Age = int(input('Age >> '))
    Breed = input('Breed >> ').title()
    Energy = int(input('Energy >> '))
    Hunger = int(input('Hunger >> '))
    dog2 = Dog(Name, Age, Breed, Energy, Hunger) <--- ***HERE IS THE PROBLEM***

错误信息:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
NameError: name 'd2' is not defined

我的代码的第 1 行只是类定义:

class Dog:

    def __init__(self, n, a, b, e, h):
        self.name = n.title()
        self.age = a
        self.breed = b.title()
        self.energy = e
        self.hunger = h

Relativley 是 OOP 的新手,因此非常感谢任何帮助。

PS。我想创建一个对象,但使用用户定义的名称,例如:

#user defined name = Dog(XXX,YYY)

标签: pythonoop

解决方案


推荐阅读