使用串联字符串作为对象名称创建新对象

2024-06-02 06:31:23 发布

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

我有一个简单的类,它存储有关参加会议的人员的信息:

class Attendee:
    def __init__(self, fName, lName, email):
        self.fName = fName
        self.lName = lName
        self.email = email

我试图使用两个用户输入字符串的组合来创建Attendee对象:

^{pr2}$

显然这行不通,但你明白我的意思了。 我知道在C中,您可以通过以下方式创建新对象:

Attendee newObjectName = new Attendee(fName, lName, email)

这将如何翻译成Python?在

谢谢


Tags: 对象字符串用户self信息人员initemail
3条回答

below in the Attendee class you define setters which will set values to your data attributes (variables) whenever an object is created and the user input the data

and you also define getters which are used to retrieve those data on demand

the last line with str will print the object state as a string

class Attendee:

    def __init__(self, fName, lName, email):

        self.fName = fName
        self.lName = lName
        self.email = email

    def set_fName(self, fName):
        self.__fName = fName

    def set_lName(self, lName):
        self.__lName = lName

    def set_email(self, email):
        self.__email = email

    def get_fName(self, fName):
        return self.__fName

    def get_lName(self, lName):
        return self.__lName

    def get_email(self, email):
        return self.__email

    def __str__(self):
        return "First name: " + self.__fName + "\nLast name: " + self.__lName + "\nEmail: " + self.__email

below is an example of a main program which asks for user input and creates a class object (of New_attendee class) I added a dictionary which is first created empty ( = {} ) and each entry is stored in the dictionary

^{pr2}$

Hope that helps! PS: I didnt put the str (object state as a string) into action

您的问题中已经有代码-newObjectName = Attendee(fName, lName, email)

如果你想要变量名,那么你需要一个不同的数据结构。例如,字典很好用:

attendees = {}
newObjectName = fName[0] + lName
attendees[newObjectName] = Attendee(fName, lName, email)

相关问题 更多 >