我已经创建了一个自定义模块(目前只定义了一个新的Exception类),并将其放在下面 lib/lib_th.rb
module LibTH
module Error
IDNotFound = Class.new
end
end
Run Code Online (Sandbox Code Playgroud)
我不需要在我的代码中要求/包含模块,因为它应该自动加载,因为它遵循传统的命名规则.
但是当我尝试IDNotFound在我的代码中的某个地方引发异常时:
res.size == 0 ? raise LibTH::Error::IDNotFound : res
Run Code Online (Sandbox Code Playgroud)
我得到了以下错误:
SyntaxError (/Users/lrnz/code/ruby/corinna/app/models/treasure_hunt.rb:49: syntax error, unexpected tCONSTANT, expecting kDO or '{' or '('
res.size == 0 ? raise LibTH::Error::IDNotFound : res
^
/Users/lrnz/code/ruby/corinna/app/models/treasure_hunt.rb:49: syntax error, unexpected ':'
res.size == 0 ? raise LibTH::Error::IDNotFound : res
^):
app/controllers/treasure_hunts_controller.rb:50:in `show'
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我在尝试引发异常时没有遇到任何问题script/console:
>> raise LibTH::Error::IDNotFound
LibTH::Error::IDNotFound: LibTH::Error::IDNotFound
from (irb):70
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在使用解析器从XML文件中获取数据.我使用libxml2来提取数据.我无法从节点获取属性.我只发现nb_attributes得到了属性的计数.
我想知道一种仅使用MySQL查询创建XML文件的方法.完全没有使用任何脚本语言.
有没有关于这个主题的书籍和教程?
更新:
我想澄清一下,我想使用sql查询将XML数据转发到php脚本.
我一直在玩pyglet.这是很不错的.但是,如果我运行我的代码,这是一个可执行文件(称为game.py),前缀是通常的
#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)
通过做
./game.py
Run Code Online (Sandbox Code Playgroud)
然后它有点笨重.但是,如果我运行它
python -O ./game.py
Run Code Online (Sandbox Code Playgroud)
要么
PYTHONOPTIMIZE=1 ./game.py
Run Code Online (Sandbox Code Playgroud)
那么它的超顺畅.
我不在乎为什么它在没有优化的情况下运行缓慢; pyglet的文档提到优化禁用了大量的断言以及OpenGL的错误检查,我很高兴将其留在那里.
我的问题是:人们如何分发Python代码以确保最终用户(对调试或修改代码没有兴趣)运行优化版本的代码.当然有一些更好的方法,而不仅仅是告诉人们确保他们在发行说明中使用优化(他们可能无论如何都不会阅读)?
在Linux上,我可以轻松地./game为最终用户提供运行该文件的脚本:
#!/bin/sh
PYTHONOPTIMIZE=1 ./game.py $*
Run Code Online (Sandbox Code Playgroud)
但这不是非常跨平台的.
我有一个想法,我应该能够改变#!线路
#!/usr/bin/env PYTHONOPTIMIZE=1 python
Run Code Online (Sandbox Code Playgroud)
要么
#!/usr/bin/env python -O
Run Code Online (Sandbox Code Playgroud)
但那些似乎没有按预期工作,我不确定他们在Windows上做了什么.
有没有办法从我不知道的代码中控制优化?就像是:
import runtime
runtime.optimize(True)
Run Code Online (Sandbox Code Playgroud)
运送多平台python代码的人在这个领域被认为是最佳实践?
我的jQuery技能通常很好,但这让我很生气!
这是一个相当简单的手风琴我从头开始编码.使用jQuery 1.3.2所以不应该有任何跳跃错误,但基本上如果你看一下这个例子:
http://www.mizudesign.com/jquery/accordian/basic.html
我正在显示右边的目标div的高度 - 如果它包含文本,它认为它比它更短并且跳跃.如果是图像则没有问题.
我无法弄清楚我哪里出错了 - 显然在CSS的某处,但我已经尝试了所有常见的嫌疑人,如display:block
任何想法都会感激不尽!
你的,克里斯
PS请原谅源代码的性质,我已经把它解整了我正在处理的整个项目,所以它确实包含了一些不需要在那里的div.
我有一个UISearchBar,它充当表视图的实时过滤器.当键盘通过endEditing:解除时,查询文本和灰色圆形"清除"按钮保持不变.从这里,如果我点击灰色的"清除"按钮,键盘会在文本被清除时重新出现.
我该如何防止这种情况?如果键盘当前未打开,我希望该按钮在不重新打开键盘的情况下清除文本.
当我点击清除按钮时,会调用一个协议方法.但是向UISearchBar发送resignFirstResponder消息对键盘没有任何影响.
我在我的应用程序中使用jquery ui datepicker.我创建了一个内联日期选择器.我遇到onChangeMonthYear的问题.我已经将示例简化为最小化.
点击"prev"或"next",日历应该: -
问题在于#2.
我正在使用setDate来做到这一点,它最终会以无限递归结束.因为,我在onChangeMonthYear中调用setDate.并且setDate也在内部触发onChangeMonthYear.
如果点击上一个/下一个,我怎样才能实现这三个方面.
在下面的代码中,$ ref引用的匿名数组的范围是可用的.
mod1.pm:
package mod1;
sub do_something{
.....
my $array_ref = ["elemnt1","elmnt2"] ;
return $array_ref ;
}
1;
file.pl
use mod1;
my $ref = mod1::do_something() ;
print "$ref->[0] $ref->[1] " ; #works
如果我重载了operator +和operator =,我仍然需要重载operator + =这样的东西才能工作:
MyClass mc1, mc2;
mc1 += mc2;
Run Code Online (Sandbox Code Playgroud)