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

使用变量创建类对象时的命名问题求助

解决账户名未正确组合姓氏与出生日期的问题

嘿,我完全懂你的困扰!你希望创建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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:08:54