当前位置: 代码迷 >> python >> __init __。storing是什么信息?
  详细解决方案

__init __。storing是什么信息?

热度:47   发布时间:2023-07-16 10:31:22.0

我读到某处__init__在创建对象时存储信息。 因此,假设我有以下代码:

class BankAccount(object):
    def __init__(self, deposit):
        self.amount = deposit 

    def withdraw(self, amount):
        self.amount -= amount

    def deposit(self, amount):
        self.amount += amount

    def balance(self):
        return self.amount 

myAccount = BankAccount(16.20)

x = raw_input("What would you like to do?")

if x == "deposit":    
    myAccount.deposit(int(float(raw_input("How much would you like to deposit?"))))
    print "Total balance is: ", myAccount.balance()   
elif x == "withdraw":    
    myAccount.withdraw(int(float(raw_input("How much would you like to withdraw?"))))
    print "Total balance is: ", myAccount.balance()    
else:
    print "Please choose 'withdraw' or 'deposit'. Thank you."

__init__在做什么或存储什么。 我不知道什么是“ self.amount”,或者如何使它=存款可以做什么。 是“self.amount”下__init__一样的一个下withdraw 我只是不了解“ self_amount”的作用。

在Python中, 是在创建类的实例时调用的方法。 此方法通常用于初始化实例变量。 初始化后,您可以在其他方法中使用它们。

关于self.amount ,它是一个实例变量(也有类变量)。 换句话说是一个属性。

您的班级是BankAccount ,每个银行帐户应有一个金额。 那是实例变量变得有用的时候!

创建实例时

myAccount = BankAccount(16.20)

会调用__init__()方法(您可以通过在其中放入print来查看此方法),它将使用16.20设置self.amount

__init__在做什么或存储什么?

一个 __init__当你构建类的一个实例被调用。 这适用于所有类。 通常会在此函数中初始化所有数据。 在您的特定情况下,您正在创建一个称为amount的成员数据,并将其分配为与传递给该函数的deposit参数相同。

问:我不知道什么是"self.amount"或如何使它= deposit做什么。

A语句self.amount = deposit完成了几件事。 它创建一个名为amount的类的成员数据,并将其分配为deposit的值。

__init__下的"self.amount"是否与"self.amount"相同?

问:我只是不了解"self.amount"作用。

A它允许您捕获对象的数据。 每个类都需要弄清楚它需要正确工作的成员数据。 就您而言,您唯一需要的数据就是amount 如果您有一个名为Employee的类,则它可能类似于:

class Employee(object):
    def __init__(self, firstName, lastName, id, salary):
        self.firstName = firstName 
        self.lastName = lastName 
        self.id = id 
        self.salary = salary 

根据您的问题,我认为您是面向对象编程(OOP)的新手。 我建议阅读有关它以及如何在Python中实现的信息。 这是一个简短的起点: :

然后,随时搜索您在那里学到的新概念。

简而言之,直接回答您的问题:

  • 类是对象模板;
  • 实现这样的模板的对象称为类的实例。
  • 对象可以具有实例变量,这些实例变量存储每个实例特定的值。
  • 类可以定义构造函数,在创建类的实例时会调用该构造函数。 这些构造函数通常用于初始化实例变量。
  • 在Python中,一个类的所有方法都将其工作的实例作为参数,按惯例命名为self
  • 在Python中, __init__是构造函数的名称

因此,在Python中,当您调用myAccount.deposit(10) ,可以说它等效于BankAccount.deposit(myAccount, 10) 因此,是的,在所有四个方法中, self变量都是“相同的”,并且在您的示例中,它是使用myAccount分配的。

您可能将self.amountamount混淆了。 self.amount是与BankAccount类关联的变量,在创建该类的实例时会对其进行初始化。 因此,self.amount在类中的每个地方都是相同的,但是amount是一个参数,因此它取决于您在函数调用时提供的值。 阅读: : 和

  相关解决方案