我已经看到很多人从模块中提取所有类的例子,通常是这样的:
# foo.py
class Foo:
pass
# test.py
import inspect
import foo
for name, obj in inspect.getmembers(foo):
if inspect.isclass(obj):
print obj
Run Code Online (Sandbox Code Playgroud)
真棒.
但我无法找到如何从当前模块中获取所有类.
# foo.py
import inspect
class Foo:
pass
def print_classes():
for name, obj in inspect.getmembers(???): # what do I do here?
if inspect.isclass(obj):
print obj
# test.py
import foo
foo.print_classes()
Run Code Online (Sandbox Code Playgroud)
这可能是非常明显的事情,但我找不到任何东西.谁能帮我吗?
按照问题.在调试视图中,有变量框架.它显示当前对象的成员变量的所有值以及所有局部变量,但它不显示对象类的任何静态变量.
我怎么做到这些?
一些谷歌搜索建议我按下工具栏上的按钮,但除了"显示类型名称""逻辑结构"和"全部折叠"(Eclipse 3.4.2)之外,Variables框架的工具栏上没有任何内容.
有什么建议?
当一个UIScrollView(或其派生类)滚动时,似乎所有NSTimers正在运行的都会暂停,直到滚动完成.
有办法解决这个问题吗?主题?优先级设置?什么?
在XCode中调试程序时,我有几个CFStringRef变量指向长度在200个字符左右的字符串.
在调试器中,它只显示这些字符串的值达到一定长度,然后将它们省略.我真的很想看到字符串的全部价值.
有没有我可以配置的选项,所以它不会以任意长度终止它们?
我正在为Android开发游戏.它有很多事情发生但运行得相当顺利.也就是说,直到用户触摸屏幕.
虽然他们触摸它,onTouchEvent被称为(与action = ACTION_MOVE,x = 0和y = 0)大致在一次看似每十毫秒是一个相当高的优先级,因为它绝对抹杀的帧率.一旦触摸结束,帧速率就会恢复到良好状态.
我试过了
onTouchEvent为游戏照常手柄输入onTouchEvent回报true立竿见影onTouchEvent实施这三种情况都存在问题.
有没有遇到过这个?有没有办法降低ACTION_MOVE生成事件的速率,或确保它们仅在实际移动时生成,或者使用仅获取触摸当前位置的轮询方法?或者甚至只是一种完全禁用它的方法?
我正在将一个游戏移植到Android(有很多代码,而且很少是我的),而DalvikVM告诉我(通过LogCat)关于垃圾收集的所有内容.在代码中的某个时刻,我得到了一个"GC释放x对象/ x ms"消息流,基本上告诉我~15万个对象刚被删除,并且它需要一整秒.
我想知道这些来自哪里!我很确定我没有故意创造那么多物品.
那么,有没有办法获得...基本上与该消息相反?在创建任何对象时打印日志消息的东西?
这样我就可以跨过代码,检查生成了多少消息,并查看代码的哪些部分正在生成对象.我怀疑某种形式的对象创建是循环的一部分,但如果可能的话,这将是一种简单的方法来确定.
我正在使用Eclipse 3.4.2,如果这是相关的.
有任何想法吗?
我很确定这是可能的,因为我很确定我已经看到它完成了.我认为这很棒,但我很乐意接受"这是一个可怕的想法,因为____"的答案.
假设我们有一个基本结构.
struct vertex
{
float x, y, z;
};
Run Code Online (Sandbox Code Playgroud)
现在,我想在这些变量上实现别名.
vertex pos;
vertex col;
vertex arr;
pos.x = 0.0f; pos.y = 0.5f; pos.z = 1.0f;
col.r = 0.0f; col.g = 0.5f; col.b = 1.0f;
arr[0] = 0.0f; arr[1] = 0.5f; arr[2] = 1.0f;
Run Code Online (Sandbox Code Playgroud)
理想情况下,第三种语法与数组无法区分.也就是说,如果我arr作为参考参数发送给期望其将存储数据的浮点数组的函数(例如许多OpenGL glGet函数),它将正常工作.
你怎么看?可能?可能但很愚蠢?
在OSX 10.5.6上使用Eclipse 3.4.2的Android记事本教程之后.
我被指示通过以下方式之一设置断点:
双击编辑器窗格左侧的灰色栏.
在上下文菜单中选择"切换断点"
我的猜测是编辑器在某种模式下不允许设置断点,但我只是一个Eclipse新手.有人能在这里提出任何建议吗?
使用Python Imaging Library,我可以打电话
img.convert("P", palette=Image.ADAPTIVE)
Run Code Online (Sandbox Code Playgroud)
要么
img.convert("P", palette=Image.WEB)
Run Code Online (Sandbox Code Playgroud)
但有没有办法转换为任意调色板?
p = []
for i in range(0, 256):
p.append(i, 0, 0)
img.convert("P", palette=p)
Run Code Online (Sandbox Code Playgroud)
它会将每个像素映射到图像中最接近的颜色?或者这是否支持Image.WEB,没有别的?
我可以File('foo.bar').abspath用来获取文件的位置,但是如果我设置了variant_dir,那么返回的路径将在variant_dir而不是它的原始位置.如果我已duplicate=0设置,则返回的文件实际上不存在.
显然,SCons知道原始文件的位置,因为它在文件实际构建时作为参数传递(例如gcc -c -o variant/foo.o orig/foo.c).
有什么File('foo.bar').origpath我可以使用的吗?
如果它来了我可以使用,os.path.join(Dir('#').abspath, 'orig')但这需要SConscript知道它在哪个目录,这是凌乱的.
android ×3
debugging ×3
eclipse ×2
macos ×2
python ×2
variables ×2
alias ×1
allocation ×1
breakpoints ×1
c++ ×1
frame-rate ×1
image ×1
inspect ×1
ios ×1
member ×1
nstimer ×1
palette ×1
polling ×1
profiling ×1
reflection ×1
scons ×1
static ×1
string ×1
struct ×1
touch ×1
uiscrollview ×1
xcode ×1