首页 > TAG信息列表 > introspection

python-生成导入图

我接近最终目标,那就是在模块和其他导入的模块之间生成一个漂亮的图形. 例如,如果x从y和z导入,而y从t和v导入,我希望具有: x -> y, z y -> t, v 现在,我已经定义了如下所示的导入钩子,但是在一个简单的文件上运行它并没有得到我期望的结果: python study_imports.py CollectImport

Python具有dir(obj)和help(obj),Lua中是否有等效项?

对于任何不熟悉Python中这两种方法的人… dir返回特定对象的方法/属性的列表. 帮助返回一个对象doc strings.解决方法:Lua没有“文档字符串”的概念. 所有Lua对象都是表(或用户数据),但是不能从Lua代码中检查用户数据.在Lua 5.1中不是这样;在5.2中,如果创建用户数据的用户希望您可以

python-给定完整的模块路径,动态导入可调用对象吗?

>>> import_path('os.path.join') <function join at 0x22d4050> 编写import_path的最简单方法是什么(在Python 2.6及更高版本中)?假设最后一个组件在模块/包中始终是可调用的.解决方法:这似乎是您想要的: def import_path(name): modname, _, attr = name.rpartition('.')

可以确定函数是方法的哪个类?

例如,如果我要装饰这样的方法 def my_decorator(fn): # Do something based on the class that fn is a method of def decorated_fn(*args, **kwargs): fn(*args, **kwargs) return decorated_fn class MyClass(object): @my_decorator def my_

python-PyGi的gnome密钥环api是什么?

有谁可以在PyGi中找到gnome密钥环api? 我曾经做: import gnomekeyring 现在,我想使用新的python / gobject自省功能,因此它类似于: from gi.repository import GnomeKeyring 但是我找不到要加载的模块.有人知道是否/如何使用python gobject introspection访问Gnome Keyring api?解

Python:查找我正在使用的函数的版本

我对导入有些困惑,我想看看我正在使用哪个版本的函数.有什么方法可以在实现或保存它的类中获取文件名?解决方法:您可以使用标准Python库中的inspect模块 import inspect inspect.getfile(some_func)

内省函数,确定使用哪个参数解包(位置或关键字)

我正在寻找一种方法来确定是否将某些参数用于拆箱,并且发现了这一点: >>> def func_has_positional_args(func): std_args = func.func_code.co_argcount wildcard_args = len(func.func_code.co_varnames) - std_args if wildcard_args == 2: return True #

您将如何确定Python类的每个属性和方法的定义位置?

给定Python中某个类的实例,能够确定每行源代码定义了每个方法和属性(例如实现1)将很有用.例如,给定一个模块ab.py class A(object): z = 1 q = 2 def y(self): pass def x(self): pass class B(A): q = 4 def x(self): pass def w(self): pass 定义

Python:为什么我不能使用locals()修改函数中的当前作用域?

为什么在函数内无法创建/修改locals()的成员? Python 2.5 (release25-maint, Jul 20 2008, 20:47:25) [GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2 Type "help", "copyright", "credits" or "license" for more information. &

c – 如何在不阻塞主线程的情况下使用Qt-Dbus绑定

我的目标是使用Qt’s DBus bindings创建一个库. 我试图创建一个Qt应用程序而不在主线程中启动QEventLoop(由QCoreApplication类提供). 这是一个简约的应用程序示例,使用QT-4.6.2版本正常工作但使用QT-4.8或更高版本阻止内省. DBusHandler.hpp #pragma once #include <iostream> #i

线程名称超过15个字符?

通过使用prctl或pthread_set_name_np等函数,可以更改线程的名称.至少在Linux 2.6.38中,两个函数强加的限制是名称不能超过15个字符(NULL终止是第16个字节). 这15个字符的限制在哪里,是否有任何(甚至非正统的)方式? 更新: 正如评论中所提到的,这是由内核强加的. 定义可以在这里找到: ht

如何检查对象是否是namedtuple的实例?

如何检查对象是否是Named tuple的实例?解决方法:调用函数collections.namedtuple为您提供了一个新类型,它是元组的子类(而没有其他类),其成员名为_fields,它是一个元组,其元素都是字符串.所以你可以检查这些东西中的每一个: def isnamedtupleinstance(x): t = type(x) b = t

Java:如何查找是否从基类重写了一个方法?

参见英文答案 > How to quickly determine if a method is overridden in Java                                    8个 如何查明子类是否覆盖了某个方法? 例如, public class Test { static public class B { public String m() {retur

python – 获取实例的类名?

如果我从中执行此操作的函数是实例的类派生的基类,如何找出在Python中创建对象实例的类的名称? 想到也许the inspect module可能在这里帮助了我,但它似乎没有给我我想要的东西.如果没有解析__class__成员,我不知道如何获取这些信息.解决方法:您是否尝试过该类的__name__属性?即type(x

在Python中获取方法参数名称

鉴于Python函数: def aMethod(arg1, arg2): pass 如何提取参数的数量和名称.即,鉴于我有一个func的引用,我想要返回func.[something](“arg1”,“arg2”). 这种情况的使用场景是我有一个装饰器,我希望使用方法参数的顺序与它们为实际函数出现的顺序相同.即,当我调用aMethod(“

python – 内省调用函数的pytest fixture

我有一个测试类和一个如下所示的设置函数: @pytest.fixture(autouse=True, scope='function') def setup(self, request): self.client = MyClass() first_patcher = patch('myclass.myclass.function_to_patch') first_mock = first_patcher.start() first

java – 如何使用spring将所有属性读入数组?

我知道你可以使用spring来读取单个属性,并将具有值列表的单个属性读入列表中.但是如何将文件中的所有属性读入列表呢? I.E. 编辑:我们正在读取的属性文件只是一个值列表,没有键,如下面的更新示例: 属性文件 queueName1 quename2 queName3 …等(文件长度为100行,因此它不是具有一个属

拦截Java字段和方法访问,创建代理对象

我想在Java中创建这样的对象,它将包含一些“调度程序”函数,如Object getAttr(String name),它将接收所有属性访问尝试 – 所以,如果我将执行System.out.print(myObj.hello),实际代码将被转换为类似System.out.print(myObj.getAttr(‘hello’)),如果我将执行myObj.hello = 123,它应

php – 我在哪里可以获得反射修饰符值列表?

This function为我的一个课程返回了524320.如果我通过getModifierNames运行它,它会告诉我: >> Reflection::getModifierNames(524320) array ( 0 => 'abstract', ) 这是正确的,但524320不是2的幂,所以它必须有一些其他标志?实际上,如果我们看一下它的二进制表示,10100111看起来它

如何在Python中获取函数的名称(以及它的模块)?

试图在Python中获取函数的全名. this question about function names指定应使用__name__字段来获取函数名称.但是,对于这种特殊情况,需要全名:包含它的模块加上函数的名称. 这样做的目的是通过同一项目中的不同程序访问功能. 例: # file /my/project/funcs.py def fun_1(a): ...

如何在Python中获取函数调用的路径?

我正在设计类似于Django的Admin.Autodiscover()的东西. 我面临的第一个障碍是获取调用admin.autodiscover()的文件的路径,以便我可以遍历该文件夹中的应用程序/库,并确定哪些模型应保存在admin中. 我怎么做?解决方法:Python的Zen说:明确比隐含更好. 为什么不这样称呼它:your.autodisco

mysql – 查找列名与给定模式匹配的表

这可能听起来有点不太现实,但我最近不得不研究远程维护的系统的数据库结构,当我想找到链接到给定表的所有列时,我发现有一些情况. (参见,原始开发人员没有创建显式关系,而是在列名中编码关系!). 例如,假设所有引用列parent.parent的列都具有表单table.somefield_parent作为记录两个

如何测试一个对象是一个函数还是一个未绑定的方法?

def is_unbound_method(func): pass def foo(): pass class MyClass(object): def bar(self): pass 我可以在is_unbound_method的主体中放置什么呢? is_unbound_method(foo) == False is_unbound_method(MyClass().bar) == False is_unbound_method(MyClass.bar) == Tr

python – 为什么我不能使用inspect.getsource()来查看列表的来源?

我试图使用inspect模块检索列表类的源代码,但没有成功: >>> import inspect >>> inspect.getsource(list) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/inspect.py", line 701, in gets

循环Python / IronPython对象方法

循环Python对象的方法并调用它们的正确方法是什么? 鉴于对象: class SomeTest(): def something1(self): print "something 1" def something2(self): print "something 2" 解决方法:您可以使用inspect模块获取类(或实例)成员: >>> class C(object): ... a = 'blah