如果我从中执行此操作的函数是实例的类派生的基类,如何找出在Python中创建对象实例的类的名称?
想到也许检查模块可能在这里帮助了我,但它似乎没有给我我想要的东西.如果没有解析__class__成员,我不知道如何获取这些信息.
所以我在这里寻找的是像PHP的print_r函数.这样我就可以通过查看相关对象的状态来调试我的脚本.
python debugging introspection pretty-print python-datamodel
有什么不同?我什么时候应该使用哪个?为什么会有这么多?
在Python中,不使用该traceback模块,有没有办法从该函数中确定函数的名称?
假设我有一个带功能栏的模块foo.执行时foo.bar(),有没有办法让酒吧知道酒吧的名字?或者更好的是,foo.bar这个名字?
#foo.py
def bar():
print "my name is", __myname__ # <== how do I calculate this at runtime?
Run Code Online (Sandbox Code Playgroud) 给定一个任何类型的Python对象,是否有一种简单的方法来获取该对象具有的所有方法的列表?
要么,
如果这是不可能的,至少有一种简单的方法来检查它是否有一个特定的方法,而不仅仅是检查方法被调用时是否发生错误?
我知道你能做到
this.GetType().FullName
Run Code Online (Sandbox Code Playgroud)
要得到
My.Current.Class
Run Code Online (Sandbox Code Playgroud)
但是我能得到什么呢
My.Current.Class.CurrentMethod
Run Code Online (Sandbox Code Playgroud) 有没有办法获得所有属性/方法/字段/等.Python中的对象?
vars()是接近我想要的,但它不起作用,除非一个对象有一个__dict__,这并不总是正确的(例如,它不适用于a list,a dict等).
我开始使用Python编写各种项目代码(包括Django Web开发和Panda3D游戏开发).
为了帮助我理解正在发生的事情,我想基本上"查看"Python对象内部以查看它们如何勾选 - 就像它们的方法和属性一样.
所以说我有一个Python对象,我需要打印出它的内容?这甚至可能吗?
我想尝试一下Swift lang,我想知道如何将以下Objective-C转换为Swift:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
UITouch *touch = [touches anyObject];
if ([touch.view isKindOfClass: UIPickerView.class]) {
//your touch was in a uipickerview ... do whatever you have to do
}
}
Run Code Online (Sandbox Code Playgroud)
更具体地说,我需要知道如何isKindOfClass在新语法中使用.
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
???
if ??? {
// your touch was in a uipickerview ...
}
}
Run Code Online (Sandbox Code Playgroud) 鉴于Python函数:
def a_method(arg1, arg2):
pass
Run Code Online (Sandbox Code Playgroud)
如何提取参数的数量和名称.即,鉴于我有一个func的引用,我想要返回func.[something]("arg1","arg2").
这种情况的使用场景是我有一个装饰器,我希望使用方法参数的顺序与它们为实际函数出现的顺序相同.也就是说,当我调用aMethod("a","b")时,装饰器看起来会打印出"a,b"吗?
introspection ×10
python ×7
c# ×1
debugging ×1
decorator ×1
function ×1
inheritance ×1
instanceof ×1
ios ×1
pretty-print ×1
python-2.6 ×1
reflection ×1
ruby ×1
swift ×1
traceback ×1