我在某处写了__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”是什么或者如何使它=存款做任何事情。 __init__
下的“self.amount”与withdraw
下的“self.amount”相同吗?我只是不明白“self_amount”的作用。
答案 0 :(得分:3)
在Python中,__init__()
是在创建类的实例时调用的方法。此方法通常用于初始化实例变量。初始化后,您可以在其他方法中使用它们。
关于self.amount
,它是一个实例变量(也有类变量)。换句话说,属性。
您的课程为BankAccount
,每个银行帐户都应有一笔金额。当实例变量变得有用时!
创建实例时
myAccount = BankAccount(16.20)
调用__init__()
方法,(您可以在内置print
来查看此方法),并将self.amount
设置为16.20
。
答案 1 :(得分:3)
问 __init__
做什么或存储什么?
只要您构造类的实例,就会调用 __init__
。这适用于所有课程。通常在此函数中初始化所有数据。在您的特定情况下,您正在创建名为amount
的成员数据,并将其指定为与传递给函数的deposit
参数相同。
问我不明白"self.amount"
是什么或者= deposit
做了什么。
A 声明self.amount = deposit
完成了一些事情。它创建名为amount
的类的成员数据,并将其指定为deposit
的值。
问 "self.amount"
下的__init__
是否与撤销中的"self.amount"
相同?
A 是。
问我只是不了解amount
做了什么。
A 它允许您捕获对象的数据。每个类都需要找出正常工作所需的成员数据。在您的情况下,您需要的唯一数据是Employee
。如果您有一个名为class Employee(object):
def __init__(self, firstName, lastName, id, salary):
self.firstName = firstName
self.lastName = lastName
self.id = id
self.salary = salary
的类,它可能类似于:
{{1}}
答案 2 :(得分:2)
从您的问题我认为您是面向对象编程(OOP)的新手。 我建议阅读它,以及如何在Python中实现它。 这是一个很短的起点:http://www.tutorialspoint.com/python/python_classes_objects.htm
然后随意搜索您在那里学到的新概念。
简而言之,直接提到您的问题:
self
__init__
是构造函数的名称所以在Python中调用myAccount.deposit(10)
时,你可以说它等同于BankAccount.deposit(myAccount, 10)
。是的,self
变量在所有四种方法中都是“相同的”,在您的示例中,它被赋予了myAccount
。
答案 3 :(得分:0)
您可能会将 self.amount 与金额混淆。 self.amount 是与 BankAccount 类相关联的变量,它会在创建类的实例时初始化。因此,self.amount在您的类中无处不在,但 amount 是一个参数,因此它取决于您在函数调用时给出的值。 阅读:http://docs.python.org/2/tutorial/classes.html 和http://www.voidspace.org.uk/python/articles/OOP.shtml#the-init-method