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

问题描述 投票:1回答:2

所以我有两个文件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

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

python list object
2个回答
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()

0
投票

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

from User import User

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

© www.soinside.com 2019 - 2024. All rights reserved.