All Questions
Tagged with object-oriented-design python
60 questions
3
votes
1
answer
454
views
Object-oriented programming design with relational database tables
I want to understand what is considered best-practice to better align with OOP when handling relational databases. I cannot find any online examples where classes and a more maintainable/re-usable ...
2
votes
2
answers
755
views
Should private attributes or public attributes be the default in Python classes?
In python we use a leading _ to make object attributes implicitly "private". If we want to give people set/get access we can use the @property decorator. Or, if setting/getting is allowed ...
2
votes
2
answers
562
views
Is this architecture overkill? What is a good way to architect this software?
I have an algorithm I am trying to implement that has steps 1 to 5. There are several different ways I could implement each step. Each calculation step is essentially just an astronomy calculation, ...
2
votes
3
answers
189
views
Which association should be in the class diagram
there are a vehicle class and customer class . In short, in the customer class there is a function that shows 'can this person or company rent that car'.The function uses a object of vehicle and ...
3
votes
4
answers
2k
views
Dependency injection using method injection vs constructor injection
Where should I inject the dependency when I write a class? Should it be given to __init__ or to the specific method that uses the dependent object?
Take the below two pieces of code for example, to me ...
-1
votes
3
answers
620
views
Is it better to override methods in classes or make methods general?
I am creating the backend of a microservice that will serve as a tool to see in real time how the company's employees are distributed by projects and what days they have assigned to each one. The ...
21
votes
6
answers
6k
views
Does subclassing int to forbid negative integers break Liskov Substitution Principle?
In Python 3, I subclassed int to forbid the creation of negative integers:
class PositiveInteger(int):
def __new__(cls, value):
if value <= 0:
raise ValueError("value ...
2
votes
1
answer
3k
views
How to add some data to an Enum in Python
I have a class that I use to define different types of plots I am performing
class MyPlots(Enum):
STANDARDSCALE = "standard"
LOGSCALE = "log"
there are default values ...
2
votes
1
answer
160
views
The notion of configurable strategies
I'm designing an algorithm that matches entries based on some notion of "proximity" (for the sake of discussion, assume we're matching floats). Furthermore:
The input is a scalar and a ...
2
votes
2
answers
218
views
Type checking, multiple functions and how to overcome function parameter names?
I have a search function. This function takes 4 different parameters that can be either a list of strings or a string. For each parameter, if it's a string I convert it to a list of strings.
def ...
5
votes
2
answers
1k
views
Design classes to model 3D scanned faces of ancient Greek/Roman sculptures: is multiple inheritance a good design solution?
I would like to deepen the topic of multiple inheritance using Python and I usually find examples that are too simple. I love art and I imagined the following problem and I want to understand if ...
-1
votes
1
answer
885
views
Why is `replace(dataclass, **kwargs)` a function, and not a member?
Imagine a simple data class:
@dataclass
class Settings:
m: int
s: str
old = Settings(m=10, s="ten")
It feels normal to write new = old.replace(m=1), but we have to write new = replace(...
3
votes
1
answer
906
views
Best Practice for Populating Objects in Python
So I am pulling data (list of JSON) from an API and want to parse it into Python objects. However the JSON objects of my list returned from my API need to be transformed a bit to fit into my object. I ...
2
votes
2
answers
112
views
Dynamic loading of objects defined during development for a running system
So I have a design/architectural question. I want to develop a pattern in a programming language that is able to allow a app command-line shell to send commands to a running application to create ...
1
vote
1
answer
195
views
Imposing an object interface in Python
I wanted to implement a method insertCard in Python which interacts with only a specific type of object called a Card.
The Card should always have a cardId and may have additional payload or fields ...