So untersuchen Sie eine Funktion, die in einem Cython C-Erweiterungsmodul definiert istPython

Python-Programme
Guest
 So untersuchen Sie eine Funktion, die in einem Cython C-Erweiterungsmodul definiert ist

Post by Guest »

Pythons Inspektionsmodul scheint nicht in der Lage zu sein, die Signaturen von „integrierten“ Funktionen zu überprüfen, zu denen auch Funktionen gehören, die in C-Erweiterungsmodulen definiert sind, wie sie beispielsweise von Cython definiert wurden. Gibt es eine Möglichkeit, die Signatur einer Python-Funktion abzurufen, die Sie in einem solchen Modul und insbesondere in Cython definiert haben? Ich möchte die verfügbaren Schlüsselwortargumente finden.

MWE:

Code: Select all

# mwe.pyx
def example(a, b=None):
pass
und

Code: Select all

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

inspect.signature(mwe.example)
Erträge:

Code: Select all

Traceback (most recent call last):
File "mwe_py.py", line 5, in 
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 
In Python 3.4.5 und Cython 0.24.1

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post