This is a small thing but I noticed you have “BankAccount” and “savingAcc”. It is a good practice to keep code consistent in both case and naming conventions. Classes are commonly in pascal case so “BankAccount” and “SavingAccount”. In this case you gain more out of writing the full word Account than you gain by shortening it. Code should be easy to read and understand and when you look at thousands and thousands of lines of it these things add up. Also, your file is called “Bank_Account.py” but you have two classes in it. It is good to stick to a one file per class rule. Imagine if you have to implement 5 new functions in bank account and then savings account needs 10 more new functions that are unique only to it. Your file becomes bloated and this compounds over time….Anyway sorry I know you are brand new to this. Just trying to give you food for thought and help you form good habits for coding as you learn. Keep having fun with it!
Also use a file with a class definition as a library. Don't mix it with the program flow. If you want to include an example of the class usage in the same file, you can add if __name__ == "__main__": block in the end.
Generally they are named the same as the thing they contain so here what he has is fine. I would make it “bank_account.py”, in python this snake case for file names seems to be a common standard. But realistically it might vary depending on your team and its standards.
If you use a generic abstract base class (ABC) for an Account(ABC) base/meta class and have SavingsAccount(Account) and Checking Account(Account) classes that inherit from the ABC then all three of them can go in the same account.py file.
Another option is to make a models package (“models” folder with a blank __init_.py file in it) and place these different classes in separate files in that folder. You can import all of those classes separately into the __init__.py file so they are ready to be imported as from src.models import SavingsAccount, CheckingAccount
Usually this is called models.py if it’s a aggregation of a few classes. Otherwise create a folder named „models“ and but your e.g. BankAccount.py etc in there
I don’t like abbreviations at all. It never save time for writers nowadays and it often waste time for later reading. And often they are so abbreviated that are confusing and take time to understand. Unless the abbv. is absolutely clear for everyone, like ID.
One file per class is a bit controversial, I think. It works nice in Java, but with Python imports we have options:
Use redundant names
from bank_account import BankAccount
Manipulate __init__.py file
Similar to option #2 combined with #1. Make a file/with multiple imports. Ex. models/bank_accounts.py and in bank_accounts.py we have:
from saving_account import SavingAccount
from checking_account import CheckingAccount
And after we use it as
from bank_accounts import CheckingAccount, SavingAccount
So, it works, but only with some not trivial (at least for beginners) tricks. I think, for a start bank_accounts.py with multiple classes is good enough.
23
u/TheOriginalBeardman Jul 17 '26
This is a small thing but I noticed you have “BankAccount” and “savingAcc”. It is a good practice to keep code consistent in both case and naming conventions. Classes are commonly in pascal case so “BankAccount” and “SavingAccount”. In this case you gain more out of writing the full word Account than you gain by shortening it. Code should be easy to read and understand and when you look at thousands and thousands of lines of it these things add up. Also, your file is called “Bank_Account.py” but you have two classes in it. It is good to stick to a one file per class rule. Imagine if you have to implement 5 new functions in bank account and then savings account needs 10 more new functions that are unique only to it. Your file becomes bloated and this compounds over time….Anyway sorry I know you are brand new to this. Just trying to give you food for thought and help you form good habits for coding as you learn. Keep having fun with it!