#javascript #python #html #class
#javascript #python #HTML #класс
Вопрос:
Здравствуйте, я работаю над проектом, и после создания класса я не могу получить доступ к внешним методам, чтобы функциональность работала. Я хотел бы использовать методы внутри моего класса для добавления или удаления из баланса и отображения.
Любая помощь была бы отличной
Код:
class BankAccount:
def __init__(self, full_name, account_number, routing_number, balance):
self.full_name = full_name
self.account_number = account_number
self.routing_number = routing_number
self.balance = balance
def deposit(amount):
self.balance = amount
print("n Amount Deposited:", amount)
# Function to withdraw the amount
def withdraw(self):
amount = float((input("Enter a amount")))
if self.balance >= amount:
self.balance -= amount
print("n You Withdrew", amount)
else:
print("n Insufficient funds.")
self.balance - 10
# Function to display the amount
def display_balance(self):
print("n You have ", self.balance)
def add_interest(balance):
interest = balance * 0.00083
def print_receipt():
print(full_name)
print("Account Number: " account_number)
print("routing number: " routing_number)
print("balance:" balance)
# creating an object of class
s = BankAccount("Bob", 00000, 0000, 1)
# Calling functions with that class object
s.withdraw(22)
s.display()
# Calling functions with that class object
Комментарии:
1.
display
метод не определен. Я считаюs.display()
, что должно бытьs.display_balance()
2. @sytech та же проблема. «объект’BankAccount’ не имеет атрибута ‘display_balance'»
3. Все ваши методы определены внутри
__init__()
метода, просто переместите их за пределы__init__()
, это просто проблема с уровнем отступа. Тогда у вас возникнет другая проблема, хотя
Ответ №1:
Вам не хватает ссылок на self в ваших методах класса. Попробуйте это:
class BankAccount:
def __init__(self, full_name, account_number, routing_number, balance):
self.full_name = full_name
self.account_number = account_number
self.routing_number = routing_number
self.balance = balance
def deposit(self, amount):
self.balance = amount
print("n Amount Deposited:", amount)
# Function to withdraw the amount
def withdraw(self):
amount = float((input("Enter a amount")))
if self.balance >= amount:
self.balance -= amount
print("n You Withdrew", amount)
else:
print("n Insufficient funds.")
self.balance - 10
# Function to display the amount
def display_balance(self):
print("n You have ", self.balance)
def add_interest(self, balance):
interest = self.balance * 0.00083
def print_receipt(self):
print(self.full_name)
print("Account Number: " self.account_number)
print("routing number: " self.routing_number)
print("balance:" self.balance)
Кроме того, вы вызываете display()
функцию, которая не определена в вашем классе. Я полагаю, вы хотите использовать display_balance()
.
Наконец, когда вы вызываете withdraw()
функцию, вы вводите значение в качестве аргумента функции, но функция не предназначена для приема каких-либо аргументов. То, как вы его написали, запрашивает ввод пользователя в командной строке. Если вы хотите, чтобы он принимал аргументы вместо этого, вы можете переопределить его следующим образом:
# Function to withdraw the amount
def withdraw(self, amount):
if self.balance >= amount:
self.balance -= amount
print("n You Withdrew", amount)
else:
print("n Insufficient funds.")
self.balance - 10