You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python运行时访问指定对象:银行账户PIN验证后获取对应对象

实现PIN验证并获取对应Konto对象的方案

Got it,这事儿不难,咱们一步步来实现你要的功能——用户输入正确PIN后,就能拿到对应的账户对象并访问它的所有属性。下面是完整的实现思路和代码:

class Konto(object):
    def __init__(self, account_holder, balance, pin):
        self.account_holder = account_holder
        self.balance = balance
        self.pin = pin

# 初始化你的账户列表(补全了第三个示例账户)
kontoList = []
kontoList.append(Konto("Person1", 143541, 1223))
kontoList.append(Konto("Person2", 89765, 4567))
kontoList.append(Konto("Person3", 234500, 8901))

def login_and_get_account():
    # 获取用户输入的PIN,转成整数和类里的pin类型匹配
    user_input_pin = int(input("请输入四位PIN码:"))
    
    # 遍历账户列表找匹配的PIN
    for account in kontoList:
        if account.pin == user_input_pin:
            print("登录成功!账户详细信息:")
            # 直接输出所有属性,也可以把对象返回供后续操作
            print(f"账户持有人:{account.account_holder}")
            print(f"账户余额:{account.balance}")
            print(f"PIN码:{account.pin}")
            return account
    
    # 没找到匹配PIN的情况
    print("PIN码错误,登录失败!")
    return None

# 执行登录逻辑,拿到登录后的账户对象
current_account = login_and_get_account()

# 后续可以用这个对象做更多操作,比如修改余额
if current_account:
    current_account.balance += 500
    print(f"账户余额已更新:{current_account.balance}")

关键逻辑说明:

  • 输入处理:用input()获取用户输入,转成整数保证和Konto类里的pin类型一致,避免类型不匹配导致的错误。
  • 遍历匹配:循环遍历账户列表,逐个对比对象的pin属性和用户输入,找到匹配项后就能直接访问该对象的所有属性。
  • 对象复用:如果需要后续对登录后的账户做操作(比如转账、改余额),直接返回这个对象就行,这样在运行时就能一直持有它。

小优化建议:

可以给Konto类加一个__str__方法,让打印对象时更简洁友好:

def __str__(self):
    return f"[账户信息] 持有人:{self.account_holder},余额:{self.balance}"

之后找到匹配对象时,直接print(account)就能输出格式化的信息啦~

内容的提问来源于stack exchange,提问作者Rise Blink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:01:51