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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从其他文件中的列表访问对象相关的知识,希望对你有一定的参考价值。

所以我有两个文件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()
另一答案

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

from User import User

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

以上是关于从其他文件中的列表访问对象的主要内容,如果未能解决你的问题,请参考以下文章

Android,从其他片段返回的空列表视图

是否可以将一个对象从一个片段发送到另一个片段?

Android:使用 putExtra 从片段访问容器活动对象?

从活动更新视图页面中片段中的列表视图

访问 json 文件列表中的多个字典

从意图活动访问片段方法