【发布时间】:2019-07-03 12:10:14
【问题描述】:
我有一个包含一系列客户的文本文件。 每条线路都有不同的客户。 每个客户端都有一个 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 中使用了它们,是否会出现问题?
谢谢
【问题讨论】:
-
为什么不列出客户端对象?
-
@user2229219 这不是我在做什么吗?我创建了空列表“客户”,并在创建每个对象后,将其附加到该列表中。在“read()”结束时,我返回列表。你能详细说明一下吗?谢谢。
-
read函数看起来不错,您对列表的使用似乎是显而易见的正确方法。看我的回答。
标签: python python-3.x class oop object