所以我有两个文件User.py包含User类和UserInformation.py,它们处理所有创建的用户的列表。为什么我无法从UserInformation.py列表中访问用户数据。 User.py:
class User(object):
name = ""
age = 0
def __init__(self, name, age):
self.name = name
self.age = age
def toString(self):
print("Name: " + self.name + ", Age: " + str(self.age))
和UserInformation.py
import User
listOfUsers = []
def addUser(User):
listOfUsers.append(User)
def listUsers(User):
x = 0
while x < len(listOfUsers):
listOfUsers[x].toString()
x= x+1
我无法打印用户对象有什么问题?
您需要为您希望存储在class
中的每个用户创建User
list
的实例
例:
from User import User
list_of_users = []
def add_user_to_list(User_instance):
list_of_users.append(User_instance)
def list_users():
x = 0
while x < len(list_of_users):
list_of_users[x].toString()
x= x+1
def alternative_list_users():
for user in list_of_users:
user.toString()
def new_user(name, age):
my_user_instance = User(name, age)
add_user_to_list(my_user_instance)
def main():
while True:
name = input('user name ? ')
if name == 'stop':
break
age = int(input('user age ? '))
new_user(name, age)
list_users()
#alternative_list_users()
if __name__ == '__main__':
main()
这里的问题是文件和类都被称为User
。 import User
只导入文件(模块)。要导入该类,您需要执行以下操作:
from User import User
虽然我会调用文件user.py
(小写)以避免这种混淆(我也会将函数的参数称为不同的函数)。