Я пытаюсь заставить два разных класса взаимодействовать как практика Python. У меня есть одна учетная запись класса. Это для симуляции банковского счета. У меня есть несколько методов, таких как снятие и депозит и т. Д. Я хочу сделать еще один очень похожий класс, называемый venmo. класс Venmo будет иметь аналогичные методы, но я хочу, чтобы класс venmo мог переводить или выводить деньги из класса Account. Я хочу, чтобы это было просто, так как это просто практика кодирования для моего класса по питону в школе. Я не пытаюсь написать какую-то высокоскоростную запутывающую программу, а просто для того, чтобы просто понять, как я могу получить доступ и обновлять экземпляры в разных классах.
Мой код ниже:
class Account:
accountmaster = {} # created masterlist of objects
def __init__(self, name, balance=0):
if name is None:
raise Exception ('Please enter a name!')
self.owner = name
accountid = 1
Account.accountmaster.update({accountid:self.owner})
if balance <0:
raise Exception ('Starting balance cannot be less than 0!')
self.__balance = balance
def __str__(self):
return ('Account Onwer: ' + self.owner+ '\n' +'Account balance: ' + str(self.__balance) )
def deposit(self, number):
try:
number = int(number)
except:
raise Exception ('Please enter a digit for deposit amount!')
if number <0:
raise Exception ('Cannot deposit negative amount!')
self.__balance= self.__balance + number
print ('Deposit Accepted')
def withdraw(self,number):
try:
number = int(number)
except:
raise Exception ('Please enter a digit for withdraw amount!')
if number > self.__balance:
raise Exception ('You do not have enough money '+self.owner+'! :(')
self.__balance= self.__balance - number
print ('Withdrawal Accepted')
def venmowithdraw(bankaccountnumber, number):
obj = Account.accountmaster.get(bankaccountnumber)
Account.withdraw(obj,number)
class venmo:
def __init__ (self, name, balance=0,bankaccountnumber = None): # added optional bankaccountnumber
if name == None:
raise Exception ('Please enter a name!')
self.owner = name
if balance <0:
raise Exception ('Starting balance cannot be less than 0!')
self.__balance = balance
if bankaccountnumber != None:
self.bankaccountnumber = bankaccountnumber
def transfer_2_venmo_from_bank(self, number):
self.__balance = self.__balance + number
Account.venmowithdraw(self.bankaccountnumber , number)
def deposit(self, number):
try:
number = int(number)
except:
raise Exception ('Please enter a digit for deposit amount!')
if number <0:
raise Exception ('Cannot deposit negative amount!')
self.__balance= self.__balance + number
print ('Deposit Accepted')
def __str__(self):
return ('Account Onwer: ' + self.owner+ '\n' +'Account balance: ' + str(self.__balance) )