What makes composition an important feature of OOP (python)?
How should I respond when I lied about my education and the company finds out through background check?
Problem with TransformedDistribution
Non-trope happy ending?
What prevents the use of a multi-segment ILS for non-straight approaches?
Calculating Wattage for Resistor in High Frequency Application?
Fear of getting stuck on one programming language / technology that is not used in my country
Why did the EU agree to delay the Brexit deadline?
Is there a working SACD iso player for Ubuntu?
Is it possible to have a strip of cold climate in the middle of a planet?
Lowest total scrabble score
Should I outline or discovery write my stories?
Which one is correct as adjective “protruding” or “protruded”?
Not using 's' for he/she/it
Why Shazam when there is already Superman?
Longest common substring in linear time
Is this toilet slogan correct usage of the English language?
Why is so much work done on numerical verification of the Riemann Hypothesis?
C++ debug/print custom type with GDB : the case of nlohmann json library
Why electric field inside a cavity of a non-conducting sphere not zero?
How could a planet have erratic days?
What was this official D&D 3.5e Lovecraft-flavored rulebook?
Create all possible words using a set or letters
Store Credit Card Information in Password Manager?
Why did the HMS Bounty go back to a time when whales are already rare?
What makes composition an important feature of OOP (python)?
$begingroup$
I am going through a python design pattern book and just ran across the mentioning of composition
as an important feature of OOP. The following description caught my eye:
In composition, an object is used to call member functions in other modules thereby making base functionality available across modules without inheritance
The associated example is straightforward, but what puzzles me is more basic: why is this an important feature? Without reading this, I'd have taken this feature for granted--shouldn't we always be able to use a function/method inside another function? Why is this viewed as an OOP feature? Are there counter examples that make this non-trivial to do? Thanks!
class A(object):
def a1(self):
print('a1')
class B(object):
def b(self):
print('b')
A().a1()
# Example of class B accessing member function of
# A without inheritance
python-3.x object-oriented design-patterns
New contributor
$endgroup$
add a comment |
$begingroup$
I am going through a python design pattern book and just ran across the mentioning of composition
as an important feature of OOP. The following description caught my eye:
In composition, an object is used to call member functions in other modules thereby making base functionality available across modules without inheritance
The associated example is straightforward, but what puzzles me is more basic: why is this an important feature? Without reading this, I'd have taken this feature for granted--shouldn't we always be able to use a function/method inside another function? Why is this viewed as an OOP feature? Are there counter examples that make this non-trivial to do? Thanks!
class A(object):
def a1(self):
print('a1')
class B(object):
def b(self):
print('b')
A().a1()
# Example of class B accessing member function of
# A without inheritance
python-3.x object-oriented design-patterns
New contributor
$endgroup$
add a comment |
$begingroup$
I am going through a python design pattern book and just ran across the mentioning of composition
as an important feature of OOP. The following description caught my eye:
In composition, an object is used to call member functions in other modules thereby making base functionality available across modules without inheritance
The associated example is straightforward, but what puzzles me is more basic: why is this an important feature? Without reading this, I'd have taken this feature for granted--shouldn't we always be able to use a function/method inside another function? Why is this viewed as an OOP feature? Are there counter examples that make this non-trivial to do? Thanks!
class A(object):
def a1(self):
print('a1')
class B(object):
def b(self):
print('b')
A().a1()
# Example of class B accessing member function of
# A without inheritance
python-3.x object-oriented design-patterns
New contributor
$endgroup$
I am going through a python design pattern book and just ran across the mentioning of composition
as an important feature of OOP. The following description caught my eye:
In composition, an object is used to call member functions in other modules thereby making base functionality available across modules without inheritance
The associated example is straightforward, but what puzzles me is more basic: why is this an important feature? Without reading this, I'd have taken this feature for granted--shouldn't we always be able to use a function/method inside another function? Why is this viewed as an OOP feature? Are there counter examples that make this non-trivial to do? Thanks!
class A(object):
def a1(self):
print('a1')
class B(object):
def b(self):
print('b')
A().a1()
# Example of class B accessing member function of
# A without inheritance
python-3.x object-oriented design-patterns
python-3.x object-oriented design-patterns
New contributor
New contributor
New contributor
asked 2 mins ago
Shan DouShan Dou
1011
1011
New contributor
New contributor
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
);
);
, "mathjax-editing");
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "196"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Shan Dou is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216093%2fwhat-makes-composition-an-important-feature-of-oop-python%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Shan Dou is a new contributor. Be nice, and check out our Code of Conduct.
Shan Dou is a new contributor. Be nice, and check out our Code of Conduct.
Shan Dou is a new contributor. Be nice, and check out our Code of Conduct.
Shan Dou is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Code Review Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216093%2fwhat-makes-composition-an-important-feature-of-oop-python%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown