我有一个简单的课程,用于存储有关参加会议的人员的信息:
class Attendee:
def __init__(self, fName, lName, email):
self.fName = fName
self.lName = lName
self.email = email
我正在尝试使用两个用户输入字符串的组合创建Attendee对象:
#get inputs from user:
fName = input("First name: ")
lName = input("Last name: ")
.....
newObjectName = fName[0] + lName
newObjectName = Attendee(fName, lName, email)
显然这不起作用 - 但是你得到了我正在拍摄的想法。 我知道在C#中你可以通过以下方式创建一个新对象:
Attendee newObjectName = new Attendee(fName, lName, email)
这将如何转化为Python?
由于
答案 0 :(得分:4)
如果您想拥有变量变量名,那么您需要一个不同的数据结构。例如,字典效果很好:
attendees = {}
newObjectName = fName[0] + lName
attendees[newObjectName] = Attendee(fName, lName, email)
答案 1 :(得分:1)
您已经在问题中找到了代码 - newObjectName = Attendee(fName, lName, email)
答案 2 :(得分:0)
在下面的Attendee类中定义setter 这将为您的数据属性(变量)设置值 每当创建一个对象并且用户输入数据时您还可以定义用于检索这些数据的getter 按需
str 的最后一行会将对象状态打印为字符串
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
下面的是要求用户输入的主程序的示例 并创建一个类对象(New_attendee类) 我添加了一个首先创建为空的字典(= {}) 每个条目都存储在字典中
def main():
NewAttendee = {}
again = 'y'
while again == 'y':
fName = input("First name: ")
lName = input("Last name: ")
email = input("Email: ")
entry = Attendee(fName,lName, email)
if fName not in NewAttendee:
NewAttendee[fName] = entry
print('The new attendee has been added')
else:
print('That name already exists.')
again = input('Do you want to add a new attendee? \'y\' for yes -->')
main()
希望有所帮助! PS:我没有把 str (对象状态作为字符串)付诸行动