Python C API 函数参数
Python C API function arguments
如何使用 C API 为具有指定参数的 class 定义函数或构造函数?
默认情况下函数接受 PyObject*
个参数,稍后在代码中 linter 不会显示真正的参数。
如果不行,有没有办法绕过?我想出了两个可能的选择:
将每个函数包装在 python 代码中
def f(x: int, y: int) -> int:
return _c_module(x, y)
也许 .pyi
文件可以解决问题(?)
最好的方法是使用 .pyi
文件并将它们与您的包一起分发(查看 docs),即如果您有一个模块 my_mod
class Baz
与成员 foo
和方法 bar
,那么你会希望 my_mod.pyi
像这样:
class Baz:
foo: float
def bar(self, param_a: str, default_one: int = ...) -> str:
pass
然后大多数 linters、类型检查器等都会捕捉到它并使用它。
如何使用 C API 为具有指定参数的 class 定义函数或构造函数?
默认情况下函数接受 PyObject*
个参数,稍后在代码中 linter 不会显示真正的参数。
如果不行,有没有办法绕过?我想出了两个可能的选择:
将每个函数包装在 python 代码中
def f(x: int, y: int) -> int: return _c_module(x, y)
也许
.pyi
文件可以解决问题(?)
最好的方法是使用 .pyi
文件并将它们与您的包一起分发(查看 docs),即如果您有一个模块 my_mod
class Baz
与成员 foo
和方法 bar
,那么你会希望 my_mod.pyi
像这样:
class Baz:
foo: float
def bar(self, param_a: str, default_one: int = ...) -> str:
pass
然后大多数 linters、类型检查器等都会捕捉到它并使用它。