| CARVIEW |
?mPython????n???d?p???FPython?????i1/2 ?y?[?W?j
Python?ł͕????̃N???X????ɃN???X???`????u???d?p???v???\???B???̕??@?ƁA???d?p?????Ƀ??\?b?h???Ăяo?????d?g?݂ɂ??Č??Ă??????B
???̋L???͉??????ł??B????o?^?i?????j????ƑS?Ă????????????܂??B
?@?O???̓N???X?́i?C???X?^???X?j???\?b?h?̃X?R?[?v??self?̖????A???ꂩ??v???C?x?[?g?ȑ????ɂ??Č????B????̓N???X?̑??d?p???ƁA???d?p?????????Ƃ??Ƀ??\?b?h???ǂ̂悤?ɉ???????邩?ɂ??Č??Ă݂悤?B
????̖ڎ?
???d?p???Ƃ?
?@?u???d?p???v?Ƃ́u?????̃N???X???炻?̋@?\???p??????v???Ƃ??B?Ⴆ?A?uA?N???X??B?N???X?????C?N???X???쐬????v?̂????????B?uA?N???X????B?N???X??h???????AB?N???X????C?N???X??h????????v?̂͌p???i?P??p???j?̘A???ł????đ??d?p???ł͂Ȃ????Ƃɂ͒??ӂ??悤?B
?@???܂??܂ȗ??R????ŋ߂̃v???O???~???O????ł͑??d?p?????T?|?[?g??????̂͂???قǑ????͂Ȃ????APython?͑??d?p?????T?|?[?g???Ă???B???d?p?????s???ɂ́A?N???X??`?Ŋ??N???X???L?q???邾?????B
?@?ȉ??ɗ???????B
class A:
def hello(self):
print('Hello from A')
class B(A):
pass
class C(A):
def hello(self):
print('Hello from C')
class D(B, C):
pass
?@???̗?ł́AA?N???X???{?̃N???X?Ƃ??Ē?`???Ă???i???ۂɂ́A???̐e?Ƃ???object?N???X??????j?B?????āA???̒??ڂ̔h???N???X?Ƃ???B?N???X??C?N???X???`???āA???x?͂????2?̃N???X?????D?N???X???`???Ă???B?Ȃ??AA?N???X??C?N???X?ł?hello???\?b?h???`???Ă??邪?A????2?̃N???X?ł͒?`???Ă??Ȃ??B
?@????D?N???X?̒?`?ł́A?uclass D(B, C)?v?Ƃ??Ċ??N???X???J???}???ŕ????w?肵?Ă???B????ɂ?葽?d?p?????s???AD?N???X??B?N???X??C?N???X?ڂ̊??N???X?Ƃ???悤?ɂȂ?B
?ǂ̃N???X?̃??\?b?h???Ăяo????邩
?@??̂悤?ɂ??āA??`???ꂽD?N???X???g?p????ۂɂ͒??ӂ??Ă????ׂ????Ƃ?????B?܂?A?uD?N???X?̃C???X?^???X?ɑ???hello???\?b?h???Ăяo???ƁAA?N???X??C?N???X?̂ǂ????hello???\?b?h???Ăяo????邩?v???B
?@???\?b?h???Ăяo???ۂɁu?ǂ̃??\?b?h???Ăяo????邩????肷??v???Ƃ??u???\?b?h?̉????v?imethod resolution?j?ƌĂԂ??Ƃ?????B?????āA???̏ꍇ?A???\?b?h??????????ɂ́uD??B??A?i??C??A?j?v?Ƃ?????????hello???\?b?h??T???čŏI?I?ɁuA?N???X??hello???\?b?h?ɉ????????v?o?H?ƁA?uD??B??C?i??A?j?v?Ƃ?????????hello???\?b?h??T???čŏI?I?ɁuC?N???X??hello???\?b?h?ɉ????????v?o?H??2?̌o?H?????肻???Ȃ??Ƃ͕????邾?낤*1?B???̂悤?ɁA???\?b?h?????????Ă????????̂??Ƃ??uMRO?v?iMethod Resolution Order?F???\?b?h?????????j?ƌĂԁB?Ȃ??A??̌o?H?ł??????Ɉ͂܂?Ă???Ƃ???́A???̒??O??hello???\?b?h????????̂Ŏ??ۂɂ͌??????s???Ȃ????Ƃ??????B
*1?@?O?҂́u?[???D??v?ƌĂ??A???S???Y???ŁA?u?܂?D?̒??ڂ̊??N???X?ł???B?A???̂??̒??ڂ̊??N???X?ł???A?v?̏??Ɍ??????āA?????Ń??\?b?h????????Ȃ???u??????̒??ڂ̊??N???X?ł???C?A???ɂ??̒??ڂ̊??N???X?ł???A?v?ƌ????????Ă??????̂??B??҂́u???D??v?ƌĂ??A???S???Y???ŁA?u?܂?D?̒??ڂ̊??N???X?ł???B??C?v?????????āA?????Ń??\?b?h????????Ȃ???u?????̋??ʂ̊??N???X?ł???A?v??????????Ƃ??????̂??B???????APython?ł͂????Ƃ͈قȂ?A???S???Y????p???ă??\?b?h???????s???Ă???B
?@?ł́A???ۂɂǂ???̃??\?b?h?????s????邩???????Ă݂悤?B
d = D()
d.hello()
?@????????s????ƁA???̂悤?ɂȂ?B
?@?????̒ʂ?AC?N???X?̃??\?b?h???Ăяo???ꂽ?B???̏ꍇ?ɂ́uD??B??C??A?v?Ƃ????????Ń??\?b?h??????????Ă???̂????A???̏?????Python 3?i?????Python 2.3?ȍ~?j?ł́uC3???`???v?ƌĂ??A???S???Y????p???Č??肳??A???\?b?h?????̒??ł???N???X?i???̏ꍇ??A?N???X?j?????x???o?ꂷ?邱?Ƃ??Ȃ??悤?ɂȂ??Ă???B
?@?????ł?A?`D?̃N???X?̌p???K?w?????̂悤?ɂȂ??Ă???B
?@???̂悤?ɕH?`?i?_?C???????h?`?j?Ɍp???K?w???\???????ۂɁA?ǂ̃??\?b?h???Ăяo????邩?⓯???N???X?i???̏ꍇ??A?N???X?j?????\?b?h???????ɉ??x???o?ꂷ?邱?Ƃ????ɂȂ?B??????u?_?C???????h?p?????v?Ƃ??u?H?`?p?????v?ȂǂƌĂԂ??Ƃ?????B
?@?܂??A??قǂ??q?ׂ????APython?ł́u?[???D??v?ł??u???D??v?ł??Ȃ??uC3???`???v?ƌĂ??A???S???Y???łǂ̃??\?b?h???Ăяo????邩?????肳???B??قǂ̃R?[?h???????ύX???āA??????m?F???Ă݂悤?B
class A:
def hello(self):
print('Hello from A')
class B(A):
pass
class C:
def hello(self):
print('Hello from C')
class D(B, C):
pass
?@???x??C?N???X??A?N???X?̔h???N???X?ł͂Ȃ??Aobject?N???X???p?????Ă???B?p???K?w???????Ǝ??̂悤?ɂȂ?B
?@?????D?N???X?̃C???X?^???X???쐬???āAhello???\?b?h???Ăяo???Ă݂悤?B
d = D()
d.hello()
?@????ƁA???s???ʂ͎??̂悤?ɂȂ?B
?@???x??A?N???X??hello???\?b?h???Ăяo???ꂽ?B????́uD??B??A??C?v?̏????Ń??\?b?h??????????āi?uA?v??hello???\?b?h?????????āj???邩?炾?B?ŏ??̗?ł́u???D??v?i???ڂ̊??N???X??D??j?????悤?Ɍ????āA???x?́u?[???D??v?i?ŏ??Ɍ??????????N???X?̌p???K?w??D??j???Ă???悤?Ɍ?????B???̂??Ƃ???APython?ɂ?????C3???`???ɂ?郁?\?b?h???????ǂ???ł??Ȃ????Ƃ???????͂????B
?@???x?͏?̃R?[?h??D?N???X?̒?`??B??C?̏?????ς??Ă݂悤?B
class A:
def hello(self):
print('Hello from A')
class B(A):
pass
class C:
def hello(self):
print('Hello from C')
class D(C, B):
pass
?@????Ő?قǂƓ????ȉ??̃R?[?h?????s???Ă݂悤?B
d = D()
d.hello()
?@????ƁA???s???ʂ͎??̂悤?ɂȂ?B
?@???x?́i????̗\?z?ʂ?jC?N???X??hello???\?b?h???Ăяo???ꂽ?B
MRO?F???\?b?h????????
?@???̂悤?ɃN???X??`???̊??N???X?̎w?肪?Ⴄ?????ł??A?ǂ̃??\?b?h???Ăяo????邩?͕ς???Ă???BC3???`???̃A???S???Y???𐳊m?ɗ??????āA???̏??????????œ????o???Ȃ???A???d?p???͓???Ďg???Ȃ??B?Ǝv??????????Ȃ????A???????????Ƃ́A???????Python???ʓ|?????Ă????B???́A?N???X?ɂ́u__mro__?v?Ƃ??????ꑮ????????A??????Q?Ƃ??邱?ƂŃ??\?b?h??????????ۂɊ??N???X?????ǂ??Ă???????????????悤?ɂȂ??Ă???B?umro?v?͏?ŏq?ׂ??悤?ɁuMethod Resolution Order?v?̗????B?Ȃ??AMRO?͑??d?p???Ɍ????????̂ł͂Ȃ??A?P??p???̌p???K?w?ł?????ɉ????????̂??쐬?????B
?@???ۂɎ????Ă݂悤?B
print(D.__mro__)
?@????????s????ƁA???̂悤?ɂȂ?B
?@???̌??ʂ???̓??\?b?h???uD??C??B??A??object?v?Ƃ????????Ō???????邱?Ƃ???????Bobject?N???X?͑S?ẴN???X?̊??N???X?Ȃ̂ŁA?Ō?̍Ō?Ɍ????̑ΏۂƂȂ?B
?@???̂悤?ɁAobject?N???X???S?Ă̊??N???X?ɂȂ??Ă???̂ŁA???͏?Ŏ??????悤??A?N???X???Ȃ??ꍇ?ł??N???X?̌p???K?w?̓_?C???????h??ɂȂ?B???̂??߁A??Ō????̂Ɠ????悤?Ȗ?肪Python 3?ł͏?ɔ???????B
?@?ȉ???object?N???X???_?C???????h?̒??_?Ƃ??āA??????p??????B??C??2?̃N???X?A????ɂ????2?̃N???X???p??????D?N???X???`???????̂??B???????A?uclass D(C, B)?v?Ɗ??N???X?̃??X?g?ɂ?C?N???X????ɏ?????Ă??邱?Ƃɒ??ӂ??悤?B
class B:
def __init__(self):
self.b_value = 'B'
print('class B init')
class C:
def __init__(self):
self.c_value = 'C'
print('class C init')
class D(C, B):
pass
?@??????D?N???X?̃C???X?^???X??????Ƃǂ??Ȃ邾?낤?B
d = D()
print(D.__mro__)
?@???s???ʂ??ȉ??Ɏ????B
?@???̏ꍇ?́AC?N???X??__init__???\?b?h???Ăяo?????i?uclass D(C, B)?v?ƂȂ??Ă???̂ŁAMRO?ł?C????Ɍ???????邽?߁j?B????A???̏o?͂????B?N???X??__init__???\?b?h???Ăяo????Ă??Ȃ????Ƃ???????B?܂?AD?N???X??C?N???X??B?N???X???p?????Ă??邪?AB?N???X??__init__???\?b?h?Œ?`???Ă???͂??̃C???X?^???X?ϐ?b_value????`????Ă??Ȃ??Ƃ??????Ƃ??B
print(d.b_value)
?@???ۂɏ?̃R?[?h???????A???̂??Ƃ???????B
?@???̒ʂ?A????ׂ??͂??̃C???X?^???X?ϐ?????`????Ă??Ȃ????Ƃ??????????B?K?ɏ????????s???ɂ́A__init__???\?b?h???S?ČĂяo?????K?v??????B?????āA????ɂ͂??????super()?????g???āA?p???K?w?Ɋ܂܂??S?Ă?__init__???\?b?h???Ăяo?????悤?ɂ???K?v??????Ƃ??????Ƃ??B
Copyright© Digital Advantage Corp. All Rights Reserved.
?A?C?e?B???f?B?A????̂??m?点
??IT eBook
?ҏW??????̂??m?点
RSS?ɂ???
?A?C?e?B???f?B?AID?ɂ???
???[???}?K?W???o?^
??IT?̃??[???}?K?W???́A ???????A???ׂĖ????ł??B???Ѓ??[???}?K?W???????w?ǂ????????B
ITmedia?̓A?C?e?B???f?B?A??????Ђ̓o?^???W?ł??B
???f?B?A?ꗗ | ????SNS | ?L???ē? | ???₢???킹 | ?v???C?o?V?[?|???V?[ | RSS | ?^?c??? | ?̗p??? | ??????

???s????
A?`D?̃N???X?̌p???K?w
?N???X?̌p???K?w
???s????
???s????





