當前位置: 首頁>>代碼示例>>Python>>正文


Python Parameter.VAR_POSITIONAL屬性代碼示例

本文整理匯總了Python中inspect.Parameter.VAR_POSITIONAL屬性的典型用法代碼示例。如果您正苦於以下問題:Python Parameter.VAR_POSITIONAL屬性的具體用法?Python Parameter.VAR_POSITIONAL怎麽用?Python Parameter.VAR_POSITIONAL使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在inspect.Parameter的用法示例。


在下文中一共展示了Parameter.VAR_POSITIONAL屬性的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: auto_assign

# 需要導入模塊: from inspect import Parameter [as 別名]
# 或者: from inspect.Parameter import VAR_POSITIONAL [as 別名]
def auto_assign(func):
    # Signature:
    sig = signature(func)
    for name, param in sig.parameters.items():
        if param.kind in (Parameter.VAR_POSITIONAL, Parameter.VAR_KEYWORD):
            raise RuntimeError('Unable to auto assign if *args or **kwargs in signature.')
    # Wrapper:
    @functools.wraps(func)
    def wrapper(self, *args, **kwargs):
        for i, (name, param) in enumerate(sig.parameters.items()):
            # Skip 'self' param:
            if i == 0: continue
            # Search value in args, kwargs or defaults:
            if i - 1 < len(args):
                val = args[i - 1]
            elif name in kwargs:
                val = kwargs[name]
            else:
                val = param.default
            setattr(self, name, val)
        func(self, *args, **kwargs)
    return wrapper 
開發者ID:keon,項目名稱:Seq2Seq-Tensorflow,代碼行數:24,代碼來源:model.py

示例2: _get_free_params

# 需要導入模塊: from inspect import Parameter [as 別名]
# 或者: from inspect.Parameter import VAR_POSITIONAL [as 別名]
def _get_free_params(fun, ignore=None):
    """Get the names of the free parameters of the function ``f``.

    Args:
        fun (callable): The function to inspect.
        ignore (list[str]): A list of argument names (as str) to ignore.

    Returns:
        list[str]: The name of the free parameters not listed in ``ignore``.
    """
    ignore = ignore or []
    free_params = []
    for name, param in signature(fun).parameters.items():
        if param.default == Parameter.empty and param.kind != Parameter.VAR_POSITIONAL:
            if name not in ignore:
                free_params.append(name)
    return free_params 
開發者ID:Qiskit,項目名稱:qiskit-terra,代碼行數:19,代碼來源:gate_utils.py

示例3: getargspec

# 需要導入模塊: from inspect import Parameter [as 別名]
# 或者: from inspect.Parameter import VAR_POSITIONAL [as 別名]
def getargspec(func):
        signature = inspect.signature(func)

        args = []
        varargs = None
        keywords = None
        defaults = []

        for param in signature.parameters.values():  # type: Parameter
            if param.kind == Parameter.VAR_POSITIONAL:
                varargs = param.name
            elif param.kind in (
                    Parameter.POSITIONAL_ONLY,
                    Parameter.KEYWORD_ONLY,
                    Parameter.POSITIONAL_OR_KEYWORD):
                args.append(param.name)
            elif param.kind == Parameter.VAR_KEYWORD:
                keywords = param.name

            # noinspection PyProtectedMember
            if param.default is not inspect._empty:
                defaults.append(param.default)

        return ArgSpec(args, varargs, keywords, tuple(defaults)) 
開發者ID:Bahus,項目名稱:easy_cache,代碼行數:26,代碼來源:compat.py

示例4: accept_variable_arguments

# 需要導入模塊: from inspect import Parameter [as 別名]
# 或者: from inspect.Parameter import VAR_POSITIONAL [as 別名]
def accept_variable_arguments(func):
    for param in signature(func).parameters.values():
        if param.kind in (Parameter.VAR_POSITIONAL,
                          Parameter.VAR_KEYWORD):
            return True
    return False 
開發者ID:chainer,項目名稱:chainerrl,代碼行數:8,代碼來源:sequence.py

示例5: get_argspec

# 需要導入模塊: from inspect import Parameter [as 別名]
# 或者: from inspect.Parameter import VAR_POSITIONAL [as 別名]
def get_argspec(f):
    sig = inspect.signature(f)
    args = [n for n, p in sig.parameters.items() if p.kind in ARG_TYPES]
    pos_args = [
        n
        for n, p in sig.parameters.items()
        if p.kind in POSARG_TYPES and p.default == inspect._empty
    ]
    varargs = [
        n for n, p in sig.parameters.items() if p.kind == Parameter.VAR_POSITIONAL
    ]
    # only use first vararg  (how on earth would you have more anyways?)
    vararg_name = varargs[0] if varargs else None

    varkws = [n for n, p in sig.parameters.items() if p.kind == Parameter.VAR_KEYWORD]
    # only use first varkw  (how on earth would you have more anyways?)
    kw_wildcard_name = varkws[0] if varkws else None
    kwargs = OrderedDict(
        [
            (n, p.default)
            for n, p in sig.parameters.items()
            if p.default != inspect._empty
        ]
    )

    return args, vararg_name, kw_wildcard_name, pos_args, kwargs 
開發者ID:IDSIA,項目名稱:sacred,代碼行數:28,代碼來源:signature.py

示例6: _convert_from_parameter_kind

# 需要導入模塊: from inspect import Parameter [as 別名]
# 或者: from inspect.Parameter import VAR_POSITIONAL [as 別名]
def _convert_from_parameter_kind(kind):
    if kind == Parameter.POSITIONAL_ONLY:
        return 0
    if kind == Parameter.POSITIONAL_OR_KEYWORD:
        return 1
    if kind == Parameter.VAR_POSITIONAL:
        return 2
    if kind == Parameter.KEYWORD_ONLY:
        return 3
    if kind == Parameter.VAR_KEYWORD:
        return 4 
開發者ID:ray-project,項目名稱:ray,代碼行數:13,代碼來源:signature.py

示例7: _convert_to_parameter_kind

# 需要導入模塊: from inspect import Parameter [as 別名]
# 或者: from inspect.Parameter import VAR_POSITIONAL [as 別名]
def _convert_to_parameter_kind(value):
    if value == 0:
        return Parameter.POSITIONAL_ONLY
    if value == 1:
        return Parameter.POSITIONAL_OR_KEYWORD
    if value == 2:
        return Parameter.VAR_POSITIONAL
    if value == 3:
        return Parameter.KEYWORD_ONLY
    if value == 4:
        return Parameter.VAR_KEYWORD 
開發者ID:ray-project,項目名稱:ray,代碼行數:13,代碼來源:signature.py

示例8: _update_backend

# 需要導入模塊: from inspect import Parameter [as 別名]
# 或者: from inspect.Parameter import VAR_POSITIONAL [as 別名]
def _update_backend(cls, backend):

        if cls.__original_docstring__ is None:
            cls.__original_docstring__ = cls.__doc__

        all_keywords = set()
        element_keywords = cls._element_keywords(backend)
        for element, keywords in element_keywords.items():
            with param.logging_level('CRITICAL'):
                all_keywords |= set(keywords)
                setattr(cls, element,
                        cls._create_builder(element, keywords))

        filtered_keywords = [k for k in all_keywords if k not in cls._no_completion]
        sorted_kw_set = sorted(set(filtered_keywords))
        if sys.version_info.major == 2:
            kws = ', '.join('{opt}=None'.format(opt=opt) for opt in sorted_kw_set)
            old_doc = cls.__original_docstring__.replace(
                'params(strict=Boolean, name=String)','')
            cls.__doc__ = '\n    opts({kws})'.format(kws=kws) + old_doc
        else:
            from inspect import Parameter, Signature
            signature = Signature([Parameter('args', Parameter.VAR_POSITIONAL)]
                                  + [Parameter(kw, Parameter.KEYWORD_ONLY)
                                     for kw in sorted_kw_set])
            cls.__init__.__signature__ = signature 
開發者ID:holoviz,項目名稱:holoviews,代碼行數:28,代碼來源:__init__.py


注:本文中的inspect.Parameter.VAR_POSITIONAL屬性示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。