使用变量创建类对象时的命名问题求助
解决账户名未正确组合姓氏与出生日期的问题
嘿,我完全懂你的困扰!你希望创建Account对象时,账户名是姓氏(surname)和出生日期(dob)的组合,但实际得到的却是accountName这个不符合预期的值,问题出在类的初始化逻辑没有正确处理这两个变量的组合,或者没有把组合后的值传递给类的属性。
问题分析
你的原代码大概率是没有在__init__方法中接收surname和dob参数,也没有将二者的组合值赋值给对象的账户名属性,导致最终账户名没有按预期生成。
修正方案
这里提供两种清晰的解决思路:
方案1:在类内部组合生成账户名
让Account类的构造方法直接接收surname和dob,在内部完成账户名的组合:
class Account(object): def __init__(self, balance, surname, dob): self.balance = balance # 将姓氏和出生日期拼接为账户名 self.accountName = surname + dob def createAccount(): # 示例数据 surname = "Neildor" dob = "19900515" initial_balance = 5000 # 创建账户对象,传入所需参数 new_account = Account(initial_balance, surname, dob) print(new_account.accountName) # 输出: Neildor19900515
方案2:先在外部组合,再传递给类
如果你更倾向于在生成对象前就处理好账户名,可以先拼接好再传给Account类:
class Account(object): def __init__(self, balance, account_name): self.balance = balance self.accountName = account_name def createAccount(): surname = "Neildor" dob = "19900515" # 先组合出目标账户名 desired_account_name = surname + dob new_account = Account(5000, desired_account_name) print(new_account.accountName) # 输出: Neildor19900515
关键说明
两种方案的核心都是确保surname和dob的组合值被正确赋值给Account对象的accountName属性,而不是用固定字符串"accountName"或者遗漏了参数传递。这样创建出来的对象就能拥有你期望的账户名啦!
内容的提问来源于stack exchange,提问作者Neildor
相关产品推荐
相关产品推荐

