相关疑难解决方法(0)

如何在函数中预定义描述符?

Python函数有一个描述符.我相信在大多数情况下我不应该直接使用它,但我想知道这个功能是如何工作的?我用这样的对象尝试了几个操作:

  1.  

    def a():
        return 'x' 
    
    a.__get__.__doc__
    'descr.__get__(obj[, type]) -> value'
    
    Run Code Online (Sandbox Code Playgroud)

    什么是obj,什么是类型?

  2.  

    >>> a.__get__()
    TypeError:  expected at least 1 arguments, got 0
    
    >>> a.__get__('s')
    <bound method ?.a of 's'>
    
    >>> a.__get__('s')()
    TypeError: a() takes no arguments (1 given)
    
    Run Code Online (Sandbox Code Playgroud)

    当然,我不能用不带参数的函数来做这个技巧.是否只需要调用带参数的函数?

  3.  

    >>> def d(arg1, arg2, arg3):
            return arg1, arg2, arg3
    >>> d.__get__('s')('x', 'a')
    ('s', 'x', 'a')
    
    Run Code Online (Sandbox Code Playgroud)

    为什么第一个参数直接由__get__,返回对象的所有其他参数?

python metaprogramming function descriptor

5
推荐指数
1
解决办法
349
查看次数

标签 统计

descriptor ×1

function ×1

metaprogramming ×1

python ×1