我正在用python创建一个城市的类结构,该结构存储城市的名称,国家,人口和语言,所有这些都由用户输入。然后将信息打印出来。
我认为我可以成功地将信息存储在类结构中(尽管这也可能是错误的),但是我无法成功打印信息。当前,我收到了int object is not subscriptable
的错误。
class User():
def _init_(self, username, password, email, numOfLogins):
User.username = username
User.password = password
User.email = email
User.numOfLogins = numOfLogins
#User Record Array Creation
def createUserArray(num , User):
UserArray = []
for x in range(num):
UserArray.append(User)
return UserArray
#User Record Array Population
def populateUserArray(num, UserArray):
for x in range(len(userArray)):
UserArray[x].username = str(input("Enter username."))
UserArray[x].password = str(input("Enter password."))
UserArray[x].email = str(input("Enter email address."))
UserArray[x].numOfLogins = int(input("Enter number of logins."))
return UserArray
#User Record Array Display
def displayUserArray(UserArray, num):
for x in range(len(userArray)):
print(UserArray[x].username, UserArray[x].password, UserArray[x].email, str(UserArray[x].numOfLogins))
#Top Level Program
numOfUsers = 3
userArray = createUserArray(numOfUsers, User)
userArray = populateUserArray(numOfUsers, userArray)
displayUserArray(numOfUsers, userArray)
该类的内容应全部显示在程序的末尾,但是由于错误-int object is not subscriptable
我的程序崩溃的那一刻。
答案 0 :(得分:0)
您始终可以实现对象的方法:ObjectID
,然后在使用以下命令打印时:
__str__(self)
您的your_obj = User(...)
print your_obj
将被调用,您可以从其中返回任何要打印的内容。
例如:
__str__(self)
这将得到打印,我认为这样更有效并且编码得更好,而不是创建一个单独打印每个类属性的函数。
答案 1 :(得分:0)
错误的原因非常简单明了:您将函数定义为displayUserArray(UserArray, num)
,但是用displayUserArray(numOfUsers, userArray)
调用-哎呀,您以错误的顺序传递了参数。
这就是说,几乎所有代码都是错误的,您显然没有得到类与实例之间的区别以及如何使用类来创建实例。我强烈建议您至少阅读 the official tutorial,并查看有关类和实例的其他一些教程和/或示例代码。