我正在构建我的第一个Python应用程序,这是一项汽车服务,客户可以在其中请求车辆运输。
我有一个“ Clients.txt”文件(在同一文件夹中),其中包含每个客户端的用户名和密码,并且我已经成功创建了函数“ read_clients()”,该函数打开了该文件并将每个用户名存储在“ client_username”和“ client_password”中的每个密码。
我现在要做的是在“客户端”类中为每个客户端创建一个对象,并自动使每个对象的self.username = client_username和每个对象的self.password = client_password。
我尝试使用for循环。 我认为我不应该调用每个对象c1,因为我认为这只会继续覆盖c1变量,对吗?但是有什么解决方案? 我应该实现一些“计数器”变量,并在每个循环中将其增加1,然后创建变量c“计数器”吗?
我应该为此使用字典吗?也许不是,因为我有一系列函数,例如create_account()和login(),它们将要在每个对象的变量上运行。对吧?
谢谢!
我尝试在“ Clients”类的内部和外部定义read_clients函数,并删除并应用“ self”属性。
class Client:
def __init__(self, username, password):
self.username = username
self.password = password
def read_clients(self):
with open("Clients.txt", "r") as file:
client_list = file.readlines()
for pre_client in client_list:
client = pre_client.split(" ")
client_username = client[0]
pre_password = client[1]
client_password = pre_password.strip("\n")
c1 = Client(client_username, client_password)
答案 0 :(得分:1)
将您新创建的客户存储在列表中,并返回这样的列表作为结果。如果您没有在self
中使用read_clients
,则可以使用@staticmethod
class Client:
def __init__(self, username, password):
self.username = username
self.password = password
@staticmethod
def read_clients():
with open("Clients.txt", "r") as file:
client_list = file.readlines()
# Store your clients here
clients = []
for pre_client in client_list:
client = pre_client.split(" ")
client_username = client[0]
pre_password = client[1]
client_password = pre_password.strip("\n")
# Save each new client
clients.append(Client(client_username, client_password))
# Return the created clients
return clients
clients = Client.read_clients()
答案 1 :(得分:0)
如果我理解正确,建议您使用列表。 示例代码(在类旁边编写):
def read_clients():
retuned_list=[]
with open("Clients.txt", "r") as file:
client_list = file.readlines()
for pre_client in client_list:
client = pre_client.split(" ")
client_username = client[0]
pre_password = client[1]
client_password = pre_password.strip("\n")
client = Client(client_username, client_password)
returned_list.append(client)
return returned_list