Pythonコアベース(二):魔法関数
1120 ワード
一:魔法関数とは
簡単な例を見てみましょう
印刷結果は間違いなくtom、jack、janeです.では、別の方法でPythonの魔法関数を使用します.
印刷結果は上記の結果と一致しています.使用していますgetitem__の魔法関数の後、companyオブジェクトを巡回するときに、その関数を探して巡回操作を行います.所有するgetitem__関数のオブジェクトは自動的に反復可能なタイプになります.
魔法関数とは?
pythonには、二重下線で始まり、二重下線で終わる関数が内蔵されています(自分では定義できません).
Pythonには、クラスの作成時に定義されたような、かなりの魔法関数が内蔵されています.getitem__関数を使用すると、クラスのオブジェクトを遍歴したり、スライスしたりすることができます.関連する魔法関数を定義していないと、これらの操作は異常を報告します.
Pythonに関する魔法関数の紹介は、この文章を見てみましょう.
https://segmentfault.com/a/1190000007256392
簡単な例を見てみましょう
class Company:
def __init__(self, employee__list):
self.employee = employee__list
company = Company(['tom','jack','jane'])
employee = company.employee
for item in employee:
print(item)
印刷結果は間違いなくtom、jack、janeです.では、別の方法でPythonの魔法関数を使用します.
class Company:
def __init__(self, employee__list):
self.employee = employee__list
def __getitem__(self, item):
return self.employee[item]
company = Company(['tom','jack','jane'])
# employee = company.employee
# for item in employee:
# print(item)
for item in company:
print(item)
印刷結果は上記の結果と一致しています.使用していますgetitem__の魔法関数の後、companyオブジェクトを巡回するときに、その関数を探して巡回操作を行います.所有するgetitem__関数のオブジェクトは自動的に反復可能なタイプになります.
魔法関数とは?
pythonには、二重下線で始まり、二重下線で終わる関数が内蔵されています(自分では定義できません).
Pythonには、クラスの作成時に定義されたような、かなりの魔法関数が内蔵されています.getitem__関数を使用すると、クラスのオブジェクトを遍歴したり、スライスしたりすることができます.関連する魔法関数を定義していないと、これらの操作は異常を報告します.
Pythonに関する魔法関数の紹介は、この文章を見てみましょう.
https://segmentfault.com/a/1190000007256392