python - 如何将对象存储在动态生成的变量中?
问题描述
我有一个包含一系列客户的文本文件。每条线路都有不同的客户。每个客户端都有一个 ID、一个用户名和一个密码。
我想创建一个“客户端”类,并在该类中循环生成对象。每个对象都有一个用户名和一个密码,并将存储在一个包含客户 ID 的变量中。客户端 1 将存储在“client_1”中,客户端 2 将存储在“client_2”中,以此类推。
我创建了打开文本文件的方法“read()”,如果有空行则中断,并检索每个客户端(每一行)的 ID、用户名和密码。
我想不通的是如何做到这一点,以便当客户端的 ID 为“1”时,我为该客户端创建一个对象并将其存储在变量“client_1”中。当客户端的 ID 为“2”时,我将客户端的 2 对象存储在变量“client_2”中,依此类推。
但我想自动执行此操作,而不是拥有 9000 个客户端并且必须自己创建 9000 个变量。
谢谢
class Client:
def __init__(self, username, password):
self.username = username
self.password = password
def read(self):
clients = []
with open("Clients.txt", "r") as file:
lines = file.readlines()
for line in lines:
if not line:
break
else:
client = line.split(" | ")
client_id = client[0]
#How do I create the variable "client_client[0]"?
username = client[1]
pre_password = client[2]
password = pre_password.strip("\n")
#client_client[0] = Client(username, password)
clients.append(#client_client[0])
return clients
我的文本文件(ID、用户名、密码 - 从左到右):
1 | admin | Z9?zzz
2 | John | J1!jjj
3 | Steve | S1!sss
另外,如果我在 read() 中使用“用户名”和“密码”变量,而我已经在 def init中使用它们,是否有问题?
谢谢
解决方案
建议
在您的循环中,您正在使用
break
. 不要那样做,你想要使用的是continue
跳过这个迭代而不是让你摆脱它。您只使用
strip('\n')
您的密码。您应该对所有项目执行此操作(以确保它们都是统一的)。但是你strip('\n')
只在密码盒上使用是对的,因为它是唯一一个有\n
. 不要把参数放进去strip()
,它会处理所有的空格、制表符和其他\n
等等\r
。您应该将
self
类的参数视为box
存在于其中的一个。这是你基本上可以在课堂上随处访问的“环境” 。而且如果你在里面创建一些东西self
,比如self.client
,它不会和一个单一的变量命名一样client
。您可能想要在这里做的是将您刚刚阅读的客户列表分配给self
,例如self.client_list = self.read()
。
关于您的计划
您需要做的不是创建与用户一样多的变量。但是您的理念是正确的,您希望将它们存储在一个地方。这就是你所做的。现在,您的程序的意义对我们来说仍然是模糊的。但是您可能想要做的是:
拥有一个数据库,您可以在其中了解物品的排序方式。您知道,在您的 users_list 的每个元素中,您的第一项是 an
id
,第二项是 it ,name
第三项是 itpassword
。基于此数据库进行操作。
- 您想“加载”一个客户,检查他是否存在于您的数据库中,并将他输入的密码与您链接的密码相匹配!
- 你想删除一个吗?
- 为已经登录的人订购冰淇淋?
推荐阅读
- openvpn - 如何创建一个tun接口?
- angular - 如何从Angular中具有相同名称(name = array [])的多个字段获取数组输入
- c++ - MFC SetRegistryKey 功能相反?我错过了什么?
- node.js - 使用 svg2img 时未定义的缓冲区
- angular - 如何在 OpenLayers 中通过拖放添加自定义样式
- r - R Studio - 相关方法“黄土”导致的错误?
- java - 我怎样才能从两个数字中得到中间?
- php - 使用 mpdf 库的 pdf 文件中的斜体印地语文本未正确显示。印地语和粗体印地语工作正常
- python - 在 Google Colab 上运行 simpletransformers 时出现“PanicException: no entry found for key”错误
- python - 从 tensorflow 对象检测实用程序导入 config_util 时出现导入错误