def __init__(self, parameter, position, type_=None):
default = parameter.default
empty = parameter.empty
self._parameter = parameter
self.is_positional = default is empty
self.is_optional = not self.is_positional
self.is_keyword_only = self.kind is parameter.KEYWORD_ONLY
if type_ is not None:
self.type = type_
self.is_bool = issubclass(type_, bool)
self.is_dict = issubclass(type_, dict)
self.is_enum = issubclass(type_, Enum)
self.is_list = issubclass(type_, (list, tuple))
else:
self.type = str if default in (None, empty) else type(default)
self.is_bool = isinstance(default, bool)
self.is_dict = isinstance(default, dict)
self.is_enum = isinstance(default, Enum)
self.is_list = isinstance(default, (list, tuple))
self.position = position
self.takes_value = self.is_positional or (self.is_optional and not self.is_bool)
评论列表
文章目录