Вы ищете Iterable<String>
?
Iterable<T> <=> IEnumerable<T>
Iterator<T> <=> IEnumerator<T>
You actually have analogous fields in CPython 2.x:
>>> first = lambda x: lambda y: x
>>> f = first(2)
>>> type(f.func_code)
<type 'code'>
>>> map(type, f.func_closure)
[<type 'cell'>]
Edit: For more details on the meaning of these constructs please read about "user defined functions" and "code objects" explained in the Data Model chapter of the Python Reference.
They used to be called
func_closure (now __closure__), func_code (now __code__)
(that should help googling).
A short explanation from here below.
Атрибуты функции с именем func_X
были переименованы, чтобы использовать форму __ X __
, освобождая эти имена в пространстве имен атрибутов функции для пользовательских атрибутов. Например, func_closure
, func_code
, func_defaults
, func_dict
, func_doc
, func_glo18. ,
имя_функции
были переименованы в __ закрытие __
, __ код __
, __ значения по умолчанию __
, __ dict __
, __ doc] __ doc ,
__ globals __
, __ name __
, соответственно.
По сути, все те же старые вещи Python 2, причудливое новое имя Python 3000.
Атрибуты функции с именем func_X
были переименованы, чтобы использовать форму __ X __
, освобождая эти имена в пространстве имен атрибутов функции для пользовательских атрибутов. В частности, func_closure
, func_code
, func_defaults
, func_dict
, func_doc
, , , , , , имя_функции
были переименованы в __ закрытие __
, __ код __
, __ значения по умолчанию __
, __ dict __
__ dict __ , __ globals __
, __ name __
, соответственно.
По сути, все те же старые вещи Python 2, причудливое новое имя Python 3000.
Вы можете узнать больше о большинстве из них в PEP 232