从其他文件中的列表访问对象

时间:2018-02-28 12:13:11

标签: python list object

所以我有两个文件User.py,包含用户类和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

为什么我无法打印用户对象有什么问题?

2 个答案:

答案 0 :(得分:0)

这里的问题是文件和类都被称为Userimport User仅导入文件(模块)。要导入,您需要执行以下操作:

from User import User

虽然我会调用文件user.py(小写)以避免这种混淆(我也会将函数的参数称为不同的函数)。

答案 1 :(得分:0)

您需要为您希望存储在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()