草庐IT

introspection

全部标签

python - 如何在 Python 2.x 中对对象执行自省(introspection)?

我正在使用Python2.x,我有一个从以太中召唤的物体;关于它的文档不是特别清楚。我希望能够获得该对象的属性列表以及每个属性的类型。同样,我还想获取该对象的方法列表,以及我可以找到的有关该方法的任何其他信息,例如参数数量及其各自的类型。我感觉我只是在Google搜索中遗漏了正确的术语。并不是说我想脱离细节,但它是ActiveDirectory,所以这总是很有趣。 最佳答案 嗯...您的第一站将是一个简单的目录(对象)。这将显示所有对象的成员,包括字段和方法。在交互式Pythonshell中尝试一下,然后试一试。例如:>classF

python - 如何列出 Python 2.5 模块中的方法?

我正在尝试使用一个用C语言编写的Python库,它没有任何类型的文档。我想使用自省(introspection)至少查看模块中有哪些方法和类。有人有我可以用来列出模块中的函数(带有参数列表)和类(带有方法和成员变量)的函数或库吗?我找到了thisarticle关于Python自省(introspection),但我很确定它不适用于Python2.5。感谢您的帮助。 最佳答案 以下是您至少可以做的一些事情:importmoduleprintdir(module)#Findfunctionsofinterest.#Foreachfunc

python - 如何列出 Python 2.5 模块中的方法?

我正在尝试使用一个用C语言编写的Python库,它没有任何类型的文档。我想使用自省(introspection)至少查看模块中有哪些方法和类。有人有我可以用来列出模块中的函数(带有参数列表)和类(带有方法和成员变量)的函数或库吗?我找到了thisarticle关于Python自省(introspection),但我很确定它不适用于Python2.5。感谢您的帮助。 最佳答案 以下是您至少可以做的一些事情:importmoduleprintdir(module)#Findfunctionsofinterest.#Foreachfunc

python - 在 Python 中检查成员是否存在

我经常想检查一个对象是否有成员。一个例子是在函数中创建单例。为此,您可以像这样使用hasattr:classFoo(object):@classmethoddefsingleton(self):ifnothasattr(self,'instance'):self.instance=Foo()returnself.instance但你也可以这样做:classFoo(object):@classmethoddefsingleton(self):try:returnself.instanceexceptAttributeError:self.instance=Foo()returnself.

python - 在 Python 中检查成员是否存在

我经常想检查一个对象是否有成员。一个例子是在函数中创建单例。为此,您可以像这样使用hasattr:classFoo(object):@classmethoddefsingleton(self):ifnothasattr(self,'instance'):self.instance=Foo()returnself.instance但你也可以这样做:classFoo(object):@classmethoddefsingleton(self):try:returnself.instanceexceptAttributeError:self.instance=Foo()returnself.

python - 如何获取对象的名称?

假设我有这样的代码:x=0y=1z=2my_list=[x,y,z]foriteminmy_list:print("handlingobject",name(item))#如何在Python中获取每个对象的name?也就是说:我可以在这段代码中写什么来代替name,这样循环会显示handlingobjectx,然后是handlingobjecty和处理对象z?在我的实际代码中,我有一个函数字典thatIwillcalllaterafterlookingthemup用户输入:deffun1():passdeffun2():passdeffun3():passfun_dict={'fun1

python - 如何获取对象的名称?

假设我有这样的代码:x=0y=1z=2my_list=[x,y,z]foriteminmy_list:print("handlingobject",name(item))#如何在Python中获取每个对象的name?也就是说:我可以在这段代码中写什么来代替name,这样循环会显示handlingobjectx,然后是handlingobjecty和处理对象z?在我的实际代码中,我有一个函数字典thatIwillcalllaterafterlookingthemup用户输入:deffun1():passdeffun2():passdeffun3():passfun_dict={'fun1

python - 如何检查对象是否是命名元组的实例?

如何检查对象是否为Namedtuple的实例? 最佳答案 调用functioncollections.namedtuple会为您提供一个新类型,它是tuple的子类(并且没有其他类),其中的成员名为_fields这是一个元组,其项目都是字符串。因此,您可以检查以下每一项:defisnamedtupleinstance(x):t=type(x)b=t.__bases__iflen(b)!=1orb[0]!=tuple:returnFalsef=getattr(t,'_fields',None)ifnotisinstance(f,tup

python - 如何检查对象是否是命名元组的实例?

如何检查对象是否为Namedtuple的实例? 最佳答案 调用functioncollections.namedtuple会为您提供一个新类型,它是tuple的子类(并且没有其他类),其中的成员名为_fields这是一个元组,其项目都是字符串。因此,您可以检查以下每一项:defisnamedtupleinstance(x):t=type(x)b=t.__bases__iflen(b)!=1orb[0]!=tuple:returnFalsef=getattr(t,'_fields',None)ifnotisinstance(f,tup

python - 如何自省(introspection) django 模型字段?

当我只知道字段名称和模型名称(均为纯字符串)时,我正在尝试获取模型内字段的类信息。怎么可能?我可以动态加载模型:fromdjango.dbimportmodelsmodel=models.get_model('myapp','mymodel')现在我有字段-'myfield'-我怎样才能获得该字段的类?如果字段是关系型-如何获取相关字段?非常感谢! 最佳答案 您可以使用模型的_meta属性来获取字段对象,并从字段中获取关系等等,例如考虑一个员工表,它有一个部门表的外键In[1]:fromdjango.dbimportmodelsIn