在python中使用用户输入(输入)向类添加新对象

我正在尝试向类(emne)添加新对象,但需要使用用户输入创建类的新实例。所以我需要一种方法来选择对象的名称并使用用户输入设置对象的一些值。


我已经尝试创建一个函数,将用户输入的值传递给 ax = emner(x) 来创建它,但它只返回: AttributeError: 'str' object has no attribute 'fagKode' 所以我认为我的问题是输入的值被创建为字符串,因此它不被理解为创建函数的一种方式


 emne=[]

 class Emne:


    def __init__(self,fagKode):

        self.fagKode = fagKode

        self.karakter = ""

        emne.append(self)



    def leggTilEmne():

        nyttEmne = input("test:")

        nyttEmne=Emne(nyttEmne)

预期结果是代码创建了类的新实例。


弑天下
浏览 310回答 3
3回答

收到一只叮咚

这是何时使用类方法的示例。__init__但是,不应附加到全局变量。要么 1)将类方法附加到类属性,要么 2)让它返回对象并让调用者维护一个全局列表。 emne = [] class Emne:    emne = []    def __init__(self, fag_kode):        self.fag_kode = fag_kode        self.karakter = ""    @classmethod    def legg_til_emne_1(cls):        nytt_emne = input("test:")        cls.emne.append(cls(nytt_emne))    @classmethod    def legg_til_emne_2(cls):        nyttEmne = input("test:")        return cls(nyttEmne)Emne.legg_til_emne_1()  # Add to Emne.emnee = Emne.legg_til_emne_2()emne.append(e)

ABOUTYOU

我不确定你到底在问什么,因为你还没有回复评论。所以,emne=[]class Emne:&nbsp; &nbsp;def __init__(self,fagKode):&nbsp; &nbsp; &nbsp; &nbsp;self.fagKode = fagKode&nbsp; &nbsp; &nbsp; &nbsp;self.karakter = ""&nbsp; &nbsp; &nbsp; &nbsp;emne.append(self)&nbsp; &nbsp;def leggTilEmne(self, value): # <--- is this what you want&nbsp; &nbsp; &nbsp; &nbsp;self.nyttEmne= Emne(value)&nbsp;

慕桂英3389331

如果通过选择名称来表示您的fagKode属性,那么您需要的是:fagKode = input('Enter code: ')Emne(fagKode)您将 Enme 的实例添加到构造函数的列表中,因此您无需将它们保存到变量中。或者,您可以在函数中处理:&nbsp;emne=[]&nbsp;class Emne:&nbsp; &nbsp; def __init__(self,fagKode):&nbsp; &nbsp; &nbsp; &nbsp; self.fagKode = fagKode&nbsp; &nbsp; &nbsp; &nbsp; self.karakter = ""&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; def leggTilEmne():&nbsp; &nbsp; &nbsp; &nbsp; nyttEmne = input("test:")&nbsp; &nbsp; &nbsp; &nbsp; enme.append(Emne(nyttEmne))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python