相关疑难解决方法(0)

为什么某些函数在函数名之前和之后都有下划线"__"?

这似乎发生了很多,并且想知道这是否是Python语言中的要求,还是仅仅是常规问题?

此外,有人可以命名并解释哪些功能倾向于具有下划线,以及为什么(__init__例如)?

python methods function double-underscore

393
推荐指数
6
解决办法
23万
查看次数


如何内省Cython C扩展模块中定义的函数

Python的inspect模块似乎无法检查"内置"函数的签名,其中包括C扩展模块中定义的函数,如Cython定义的函数.有没有办法获得你在这样一个模块中定义的Python函数的签名,特别是在Cython中?我希望能够找到可用的关键字参数.

MWE:

# mwe.pyx
def example(a, b=None):                                                                                                                                                       
    pass       
Run Code Online (Sandbox Code Playgroud)

import pyximport; pyximport.install()                                                                                                                                         
import mwe                                                                                                                                                                    
import inspect                                                                                                                                                                

inspect.signature(mwe.example)   
Run Code Online (Sandbox Code Playgroud)

收益率:

Traceback (most recent call last):                                                                                                                                           
  File "mwe_py.py", line 5, in <module>                                                                                                                                      
    inspect.signature(mwe.example)                                                                                                                                           
  File "/nix/store/134l79vxb91w8mhxxkj6kb5llf7dmwpm-python3-3.4.5/lib/python3.4/inspect.py", line 2063, in signature                                                         
    return _signature_internal(obj)                                                                                                                                          
  File "/nix/store/134l79vxb91w8mhxxkj6kb5llf7dmwpm-python3-3.4.5/lib/python3.4/inspect.py", line 1965, in _signature_internal                                               
    skip_bound_arg=skip_bound_arg)                                                                                                                                           
  File "/nix/store/134l79vxb91w8mhxxkj6kb5llf7dmwpm-python3-3.4.5/lib/python3.4/inspect.py", line 1890, in _signature_from_builtin                                           
    raise ValueError("no signature found for builtin {!r}".format(func))                                                                                                     
ValueError: no signature found for builtin <built-in function example>    
Run Code Online (Sandbox Code Playgroud)

在Python 3.4.5和Cython 0.24.1中

python introspection cython python-c-extension

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

Python是否有像Ruby这样的.methods方法?

我是一个向Python迁移的Ruby人。我想念的一件事是一种简单的方法,可以查看可在外壳中的特定对象上使用的所有方法的列表。

是否有Python中Ruby的Object#方法的类似物?

ruby python

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