尝试从对象获取列表会返回该类中所有对象的列表

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

我有一个称为帐户的课程在该课程中,有一个名为密码的列表

当我尝试在for循环中访问该列表时,它将返回一个列表,其中包含来自两个对象的项,而不仅仅是一个对象

例如

p1 = account('username','password',[['123','youtube'],['124','reddit']])
p2 = account('username1','password1',[['889','youtube'],['999','reddit']])

accounts = [p1,p2]

for i in accounts:
    print(i.passwords)

这将打印出来

[['123','youtube'],['124','reddit'],['889','youtube'],['999','reddit']]
[['123','youtube'],['124','reddit'],['889','youtube'],['999','reddit']]

代替

['123','youtube'],['124','reddit']
['889','youtube'],['999','reddit']

仅在此情况下发生,而不是密码或用户名部分

为什么会发生以及如何解决

类代码:

class account:
    def __init__(self,username,password,passwords):
        self.username = username
        self.password = password
        self.passwords = passwords
        self.logged_on = False

    def print_passwords(self):
        if self.logged_on == True:
            for i in self.passwords:
                print(f'Password for {i[1]} is {i[0]}')
        else:
            return

    def add_password(self):
        if self.logged_on == True:
            website = input('enter website the password is for: ')
            newpass = input('enter password: ')
            self.passwords.append([newpass,website])
        else:
            return
python class
1个回答
0
投票

我执行了您的代码,这是我的输出:

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