- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Is it possible to list all functions in a module? 的答案列出一系列模块中的功能。但在我的解释器中,我得到如下信息:
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (In
tel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import inspect
>>> import math
>>> math.pow(5,4)
625.0
>>> inspect.getmembers(math, inspect.isfunction)
[]
>>> inspect.getmembers(inspect, inspect.isfunction)
[('_check_class', <function _check_class at 0x00C9F9C0>), ('_check_instance', <f
unction _check_instance at 0x00C9F978>), ('_get_user_defined_method', <function
_get_user_defined_method at 0x00C9FB70>), ('_getfullargs', <function _getfullarg
s at 0x00C6A4F8>), ('_is_type', <function _is_type at 0x00C9FA08>), ('_missing_a
rguments', <function _missing_arguments at 0x00C9F198>), ('_shadowed_dict', <fun
ction _shadowed_dict at 0x00C9FA50>)... foo, bar, etc]
>>> math
<module 'math' (built-in)>
>>> inspect
<module 'inspect' from 'E:\\Python33\\lib\\inspect.py'>
>>> import win32api
>>> inspect.getmembers(win32api, inspect.isfunction)
[]
>>> win32api
<module 'win32api' from 'E:\\Python33\\lib\\site-packages\\win32\\win32api.pyd'>
像往常一样,我假设有一些非常明显的原因可以解释为什么我尝试的一半模块中的所有功能都没有列出。我能猜到的最好的是 isfunction() 只适用于 .py 模块?如果有与我愚蠢无关的先天问题,有没有办法纠正这件事?
这显然是 isfunction() 的问题,因为 getmembers 似乎工作正常:
>>> import math
>>> import inspect
>>> inspect.getmembers(math)
[('__doc__', 'This module is always available. It provides access to the\nmathe
matical functions defined by the C standard.'), ('__loader__', <class '_frozen_i
mportlib.BuiltinImporter'>), ('__name__', 'math'), ('__package__', ''), ('acos',
<built-in function acos>), ('acosh', <built-in function acosh>), ('asin', <buil
t-in function asin>)... foo, bar, etc]
我知道有一个 dir() 可以使用,但它并不是那么整洁。
最佳答案
C 定义的函数不是用户定义的 function
类型的实例;它们是用 C 定义的,您可以使用 inspect.isbuiltin()
.
列出模块中所有函数的简单方法是使用 inspect.isroutine()
相反:
Return true if the object is a user-defined or built-in function or method.
math
模块的演示:
>>> import inspect
>>> import math
>>> inspect.getmembers(math, inspect.isroutine)
[('acos', <built-in function acos>), ('acosh', <built-in function acosh>), ('asin', <built-in function asin>), ('asinh', <built-in function asinh>), ('atan', <built-in function atan>), ('atan2', <built-in function atan2>), ('atanh', <built-in function atanh>), ('ceil', <built-in function ceil>), ('copysign', <built-in function copysign>), ('cos', <built-in function cos>), ('cosh', <built-in function cosh>), ('degrees', <built-in function degrees>), ('erf', <built-in function erf>), ('erfc', <built-in function erfc>), ('exp', <built-in function exp>), ('expm1', <built-in function expm1>), ('fabs', <built-in function fabs>), ('factorial', <built-in function factorial>), ('floor', <built-in function floor>), ('fmod', <built-in function fmod>), ('frexp', <built-in function frexp>), ('fsum', <built-in function fsum>), ('gamma', <built-in function gamma>), ('hypot', <built-in function hypot>), ('isinf', <built-in function isinf>), ('isnan', <built-in function isnan>), ('ldexp', <built-in function ldexp>), ('lgamma', <built-in function lgamma>), ('log', <built-in function log>), ('log10', <built-in function log10>), ('log1p', <built-in function log1p>), ('modf', <built-in function modf>), ('pow', <built-in function pow>), ('radians', <built-in function radians>), ('sin', <built-in function sin>), ('sinh', <built-in function sinh>), ('sqrt', <built-in function sqrt>), ('tan', <built-in function tan>), ('tanh', <built-in function tanh>), ('trunc', <built-in function trunc>)]
注意每个函数对象的字符串表示的内置
部分。
isroutine()
如果 inspect.isbuiltin()
之一返回真, inspect.isfunction()
, inspect.ismethod()
或 inspect.ismethoddescriptor()
返回真。
关于python - inspect.isfunction 不适用于所有模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22428910/
我有一个嵌套数组: array_name = [ ["Alice", "pizza", "soccer"], ["Steve", "sushi", "hockey"], ["Alex",
我正在尝试下载网页,但文件在我下载的内容、页面源和检查方面有所不同。如何下载检查中显示的内容? 最佳答案 查看页面源代码返回服务器发送并由浏览器加载的静态 html 页面。 虽然 inspect 将显
我发现自己在我的功能测试中做了很多 puts .inpsect s 以确保我知道数据是如何格式化的......但是当散列对象中的每个条目之后没有新行时散列很难读取.无论如何,也许是一个 gem ?,
所以这段代码: from inspect import * class X(object): def y(self): pass methods = getmembers(X, predi
我在 Ruby 1.9 中通过调用等于 my_hash.inspect 的 my_hash.to_s 不小心将 Ruby 哈希保存到字符串。这给了我这样的字符串: '{"foo"=>{"bar"=>"
自从升级 NodeJs 以来,我从 Visual Studio 2017 运行 Nodejs 时遇到此错误。 断点也不起作用。有任何解决这个问题的方法吗? 注意:VS版本是15.5.6NodeJS 版
我已经使用 VS 2015 在我的计算机上安装了 nodeJs 并进行了设置。当我尝试运行示例 hello world 应用程序时,它抛出以下错误: verb(node:14096) [DEP0062
当我在 Visual Studio 中运行 Node.js 应用程序时,我收到以下消息:DeprecationWarning: 'node --debug' 和 'node --debug-brk'
下面的代码无法运行 def map = [name:"Test :: ( %2f %25 \$ * & ! @ # ^)"] String s = map.inspect() println Eval
我正在尝试使用检查来查明 foo 是否是对象 test_me 的方法。我希望它返回 True 或 False。这是我试过的。 import inspect class Object: pass
这个问题在这里已经有了答案: Is there a way in git to obtain a push date for a given commit? (8 个答案) 关闭 5 年前。 我如何
描述与简介 docker inspect是docker客户端的原生命令,用于查看docker对象的底层基础信息。包括容器的id、创建时间、运行状态、启动参数、目录挂载、网路配置等等。另外,该命令也
我的问题是如何使 SASS 函数 inspect() 与数组一起工作或如何以另一种方式输出数组。 我的基本示例是这段代码: @function z($layers...) { @warn "`#{
我在 Ruby 中发现了一个奇怪的问题,我不太确定这是一个问题还是最近 Ruby 版本中引入的一个功能。 基本上当我们调用一个未定义的方法时,我们会得到一个 undefined method Ruby
Message will display here Document.getElementById("idbd").style.backgroundcolor="red"; Document
注意:我读过类似的帖子,但没有一个完全是我的问题 - 我可以右键单击它,然后它就消失了。 我发现“检查元素”是 Chrome 中非常宝贵的工具,但是我在将其用作导航栏上某个元素的子菜单时遇到了麻烦,该
使用 ionic 开发 Web 应用程序时,在 iOS 模拟器中使用命令行运行程序非常有用 ionic run ios -l -c -s --target="iPhone-5s" 然后通过选择桌面 S
JQuery 是一个非常强大的工具,但它很难调试。 看看下面的图片: 如何轻松找到包含 JQuery 代码的 *.js 文件,该代码已附加到这部分 HTML 代码? 我认为这几乎是不可能的,因为它也可
我正在尝试通过古腾堡 Inspect Control 的媒体库上传文件。我目前在 JS 中使用此代码: var el = wp.element.createElement, registerB
我正在尝试使用 Is it possible to list all functions in a module? 的答案列出一系列模块中的功能。但在我的解释器中,我得到如下信息: Python 3.
我是一名优秀的程序员,十分优秀!