Python,无法在类外调用初始参数

2024-10-03 23:26:31 发布

您现在位置:Python中文网/ 问答频道 /正文

调用后,下面的python类将空字典作为初始参数 createAccount()类外它成功地将数据添加到字典中,但我无法访问类外的字典

要访问新创建的帐户详细信息,我应在以下代码中进行哪些更改

*请注意,我的错误发生在代码的最后一行*

class SavingsAccount():
    def __init__(self):
        self.savingsAccounts = {}
    def createAccount(self, name, initialDeposit):
        print()
        self.accountNumber = int(12345)
        self.savingsAccounts[self.accountNumber] = [name, initialDeposit]
        print("Account creation has been successful. Your account number is ", self.accountNumber)


SavingsAccount().createAccount(name = 'a',initialDeposit=4)

print(SavingsAccount().savingsAccounts[12345]) # getting error here

Tags: 数据代码nameself参数字典def详细信息
3条回答

每次调用都会创建一个新的SavingsAccount实例。调用createAccount完成后,该实例将被垃圾收集,因为对它的引用不会存储在任何地方

s = SavingsAccount()

s.createAccount(name='a', initialDeposit=4)
print(s.savingsAccounts[12345])

(请参见Taohidul Islam's answer,了解应该如何定义类。)

给出错误的行执行以下操作:

  1. 调用SavingsAccount.init()来创建对象
  2. 询问字典中的12345项(即刚刚创建的内容,因此它是空的)

您应该以不同的方式构造代码。您应该有一个独特的帐户或类似帐户列表,然后在其中插入您创建的帐户

您应该使用__init__初始化对象

class SavingsAccount:
    def __init__(self, name, initial_deposit):
        self.accountNumber = 12345
        self.savingsAccounts = {self.accountNumber : [name, initial_deposit] }
        print("Account creation has been successful. Your account number is ", self.accountNumber)


saving_account = SavingsAccount(name='a', initial_deposit=4)

print(saving_account.savingsAccounts)

此外,大多数Python学者在命名变量时更喜欢使用蛇形外壳

相关问题 更多 >