2017-12-14 4 views
1

8.3. collections — Container datatypes — Python 3.6.4rc1 documentation
namedtupleの5つのメソッドを指定します。dir()によってリストされていないnamedtupleのメソッド

namedtuple_methods = {'_fields', '_make', '_replace', '_asdict', '_source'} 

それにもかかわらず、この方法は、彼らが何の交差点を共有していないdir方法

from collections import namedtuple 
set(dir(namedtuple)) & namedtuple_methods 
In [64]: set(dir(namedtuple)) & namedtuple_methods 
Out[64]: set() 

によって取得することができません。興味深いことに

、特定のnamedtupleリスト方法

Book = namedtuple('Book', 'name, author') 
In [70]: set(dir(Book)) & namedtuple_methods 
Out[70]: {'_asdict', '_fields', '_make', '_replace', '_source'} 

machenismの背後には何ですか?

答えて

2

namedtupleは(文字通り、def namedtuple(を開始し、ソースコード内の関数がある)ファクトリ関数で、それは(それがtupleのサブクラスを作成し、それがtuplenamedtupleではありません)、独自のクラスではありません。 Plain def -ed関数には、このような特別なメソッドはありません。

関連する問題