Skip to content

[Term Entry] Python Inheritance: Hybrid Inheritance #7099

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 23 commits into
base: main
Choose a base branch
from

Conversation

nsmith7atafi
Copy link

Description

  • Added the Hybrid Inheritance term for Python

Issue Solved

Type of Change

  • Adding a new entry

Checklist

  • All writings are my own.
  • My entry follows the Codecademy Docs style guide.
  • My changes generate no new warnings.
  • I have performed a self-review of my own writing and code.
  • I have checked my entry and corrected any misspellings.
  • I have made corresponding changes to the documentation if needed.
  • I have confirmed my changes are not being pushed from my forked main branch.
  • I have confirmed that I'm pushing from a new branch named after the changes I'm making.
  • I have linked any issues that are relevant to this PR in the Issues Solved section.

@CLAassistant
Copy link

CLAassistant commented Jun 13, 2025

CLA assistant check
All committers have signed the CLA.

Copy link
Collaborator

@mamtawardhani mamtawardhani left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @nsmith7atafi, thank you for contributing to Codecademy Docs, the entry is nicely written! 😄

I've suggested a few changes, could you please review and modify those at your earliest convenience? Thank you! 😃

@@ -0,0 +1,116 @@
---
Title: 'Hybrid Inheritance'
Description: 'Hybrid inheritance mixes inheritance types, letting a class inherit traits from multiple parents to model complex real-world ties.'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Description: 'Hybrid inheritance mixes inheritance types, letting a class inherit traits from multiple parents to model complex real-world ties.'
Description: 'Hybrid inheritance combines multiple types of inheritance, allowing a class to inherit features from more than one parent and represent complex real-world relationships.'

Comment on lines 21 to 39
## Diagram

The following diagram shows a hybrid inheritance structure where a class inherits from multiple parent classes, combining multilevel and multiple inheritance:

```
System
/ \
/ \
Database API
\ /
\ /
App
```

- `System`: Base class with general functionality.
- `Database`: Inherits from `System`, adds data storage capabilities.
- `API`: Inherits from `System`, adds request handling capabilities.
- `App`: Inherits from both `Database` and `API`, combining their features.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mamtawardhani Is it acceptable to use the picture from the example link you provided and update it to match my example with using System, Database, API, and App?
Hybrid-Inheritance


- `BaseClass`: The top-level parent class.
- `DerivedClass1`, `DerivedClass2`: Intermediate classes inheriting from `BaseClass`.
- `HybridClass`: The class combining inheritance from multiple parent classes.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- `HybridClass`: The class combining inheritance from multiple parent classes.
- `HybridClass`: Inherits from both intermediate classes, forming a hybrid structure (mix of multilevel and multiple inheritance).

Comment on lines 59 to 60
- Use commas in the class definition to specify multiple parent classes.
- Python’s Method Resolution Order (MRO) determines which parent class method is called in case of conflicts.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can be added in as a note


This example defines an `System` base class with a `process` method. `Database` and `API` inherit from `System`, adding `store` and `request` methods, respectively. `App` uses hybrid inheritance to inherit from both `Database` and `API`, combining their behaviors. The `describe` method in `App` calls methods from all parent classes, demonstrating access to inherited functionality.

```python
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```python
```py

Comment on lines 67 to 84
class System:
def process(self):
return "Processing data"

class Database(System):
def store(self):
return "Storing data"

class API(System):
def request(self):
return "Handling request"

class App(Database, API):
def describe(self):
return f"{self.process()}, {self.store()}, {self.request()}"

app = App()
print(app.describe())
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
class System:
def process(self):
return "Processing data"
class Database(System):
def store(self):
return "Storing data"
class API(System):
def request(self):
return "Handling request"
class App(Database, API):
def describe(self):
return f"{self.process()}, {self.store()}, {self.request()}"
app = App()
print(app.describe())
class System:
def process(self):
return "Processing data"
class Database(System):
def store(self):
return "Storing data"
class API(System):
def request(self):
return "Handling request"
class App(Database, API):
def describe(self):
return f"{self.process()}, {self.store()}, {self.request()}"
app = App()
print(app.describe())

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

indentation should be two spaces


The output would be:

```python
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```python
```shell

Comment on lines 96 to 113
class System:
def process(self):
return "Processing data"

class Database(System):
def store(self):
return "Storing data"

class API(System):
def request(self):
return "Handling request"

class App(Database, API):
def describe(self):
return f"{self.process()}, {self.store()}, {self.request()}"

app = App()
print(app.describe())
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
class System:
def process(self):
return "Processing data"
class Database(System):
def store(self):
return "Storing data"
class API(System):
def request(self):
return "Handling request"
class App(Database, API):
def describe(self):
return f"{self.process()}, {self.store()}, {self.request()}"
app = App()
print(app.describe())
class System:
def process(self):
return "Processing data"
class Database(System):
def store(self):
return "Storing data"
class API(System):
def request(self):
return "Handling request"
class App(Database, API):
def describe(self):
return f"{self.process()}, {self.store()}, {self.request()}"
app = App()
print(app.describe())

Copy link
Collaborator

@mamtawardhani mamtawardhani left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @nsmith7atafi, thank you for contributing to Codecademy Docs, the entry is nicely written! 😄

I've suggested a few changes, could you please review and modify those at your earliest convenience? Thank you! 😃

@mamtawardhani mamtawardhani linked an issue Jun 16, 2025 that may be closed by this pull request
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Term Entry] Python Inheritance: Hybrid Inheritance
3 participants