小编yod*_*lex的帖子

Ruby动态类.如何修复"警告:来自toplevel的类变量访问"

我正在尝试编写一个程序,根据从文件中读取的配置动态定义ruby类.我知道我可以使用Class.new来做到这一点.这是一个示例程序:

x = [1,2,3]

Test = Class.new do
  @@mylist = x

  def foo
    puts @@mylist
  end
end

Test.new.foo
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到以下输出(与ruby 1.9.3p0一起运行):

c:/utils/test.rb:4: warning: class variable access from toplevel
c:/utils/test.rb:7: warning: class variable access from toplevel
1
2
3

有谁知道是什么导致这些警告以及我如何摆脱它们?

我已经尝试更换线路了

@@mylist = x
Run Code Online (Sandbox Code Playgroud)

有了这个

class_variable_set(:@@mylist, x)
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,我得到了这个错误:

c:/utils/test.rb:7: warning: class variable access from toplevel
c:/utils/test.rb:7:in `foo': uninitialized class variable @@mylist in Object (NameError)
        from c:/utils/test.rb:11:in `'

提前致谢!

ruby oop warnings dynamic

13
推荐指数
2
解决办法
2万
查看次数

我怎样才能追溯调试python异常

我正在寻找一种方法来"回顾性地"调试python异常.基本上如果我的程序引发了一个未处理的异常,我希望它能够保存程序状态,以便我可以稍后返回并调试问题.

我已经看了一下pdb文档,看起来你可以这样做,但前提是你可以在异常时与程序进行交互.这对我不起作用,因为程序将在后台运行(没有控制终端).

我的第一个(注定要做的)方法是在我的程序的最高级别放置一个try/except块,在except块中从当前异常中提取traceback对象并使用pickle将其写入磁盘.我打算然后编写一个单独的程序来解开对象并使用pdb.post_mortem来调试崩溃的程序.但是回溯对象不是可选择的,但我不希望它仍然可以工作,因为它不会保存整个程序状态.

python debugging

6
推荐指数
1
解决办法
940
查看次数

FFmpeg/X264:拆分视频mid-GOP而不重新编码整个流

我有一个H264视频(存储在MP4文件中).每个GOP长约10秒.我想在视频的前几秒修剪,这意味着我需要拆分第一个GOP.有没有办法在不重新编码整个视频的情况下执行此操作?

我有FFmpeg和x264可用.我很高兴使用FFmpeg命令行,或者我自己的程序链接到x264库的ffmpeg.

提前致谢!

video mp4 ffmpeg h.264 x264

5
推荐指数
1
解决办法
2609
查看次数

标签 统计

debugging ×1

dynamic ×1

ffmpeg ×1

h.264 ×1

mp4 ×1

oop ×1

python ×1

ruby ×1

video ×1

warnings ×1

x264 ×1