Tag: 元编程

使用Ruby中的函数名称从string中调用函数

我怎么能做他们在这里谈论的,但在Ruby? 你将如何做一个对象的function? 以及你将如何做一个全球性的function(见jetxee在提到的职位上的答案 )? 示例代码: event_name = "load" def load() puts "load() function was executed." end def row_changed() puts "row_changed() function was executed." end #something here to see that event_name = "load" and run load() 更新:你如何得到全球的方法? 或我的全球function? 我尝试了这个额外的路线 puts methods 和load和row_change哪里没有列出。

如何将parameter passing给define_method?

我想将一个parameter passing给一个使用define_method定义的方法,我该怎么做?

一行Python代码能够知道它的缩进嵌套级别吗?

从这样的事情: print(get_indentation_level()) print(get_indentation_level()) print(get_indentation_level()) 我想得到这样的东西: 1 2 3 代码能以这种方式读取它自己吗? 我想要的是从更多的嵌套部分的代码更多的嵌套输出。 以同样的方式,这使得代码更容易阅读,这将使输出更容易阅读。 当然,我可以手动实现,例如.format() ,但是我想到的是一个自定义的打印函数,它将print(i*' ' + string) ,其中i是缩进级别。 这将是在我的terminal上进行可读输出的快速方法。 有没有更好的方法来避免艰苦的手动格式?

什么是Python类的__dict __.__ dict__属性?

>>> class A(object): pass … >>> A.__dict__ <dictproxy object at 0x173ef30> >>> A.__dict__.__dict__ Traceback (most recent call last): File "<string>", line 1, in <fragment> AttributeError: 'dictproxy' object has no attribute '__dict__' >>> A.__dict__.copy() {'__dict__': <attribute '__dict__' of 'A' objects> … } >>> A.__dict__['__dict__'] <attribute '__dict__' of 'A' objects> # What is this object? 如果我做了A.something = […]

为什么允许嵌套类模板的部分特化,而完整不是?

template<int x> struct A { template<int y> struct B {};. template<int y, int unused> struct C {}; }; template<int x> template<> struct A<x>::B<x> {}; // error: enclosing class templates are not explicitly specialized template<int x> template<int unused> struct A<x>::C<x, unused> {}; // ok 那么为什么不允许内部的,嵌套的类(或函数)的明确的专门化,如果外部类不专门呢? 奇怪的是,我可以解决这个问题,如果我只是通过简单地添加一个虚拟模板参数来部分专门化内部类。 使事情变得更丑陋,更复杂,但工作起来。 我认为完整的专业化是部分专业化的一个子集,尤其是因为你可以通过添加一个虚拟参数来expression每一个完整的专业化。 所以这个在部分专业化和完全专业化之间的歧义对我来说并不合适。 不幸的是,comp.std.c ++中没有人敢回答,所以我在这里再次带着赏金。 注意:我需要这个特性来为内部类的recursion模板提供一组外部类,内部参数的特化取决于外部模板参数。

C ++ SFINAE的例子?

我想进入更多的模板元编程。 我知道SFINAE代表“替代失败不是一个错误”。 但有人可以给我看SFINAE的好用吗?

枚举C ++中的枚举

在C ++中,是否可以枚举一个枚举(运行时或编译时(首选))和调用函数/为每个迭代生成代码? 示例用例: enum abc { start a, b, c, end } for each (__enum__member__ in abc) { function_call(__enum__member__); } 似是而非的重复: C ++:遍历一个枚举 Enum在C + +像枚举在Ada?

Python对象字段中的字典

你知道是否有一个内置的函数来从任意对象build立一个字典? 我想要做这样的事情: >>> class Foo: … bar = 'hello' … baz = 'world' … >>> f = Foo() >>> props(f) { 'bar' : 'hello', 'baz' : 'world' } 注意:它不应该包括方法。 只有领域。

在Ruby模块中执行每个方法调用的代码

我在Ruby 1.9.2中编写了一个定义了几个方法的模块。 当任何这些方法被调用,我希望他们每个人先执行一个特定的陈述。 module MyModule def go_forth a re-used statement # code particular to this method follows … end def and_multiply a re-used statement # then something completely different … end end 但是我想避免在每一个方法中明确地a re-used statement代码。 有没有办法做到这一点? (如果重要的话, a re-used statement会在每个方法被调用时打印自己的名字,这将通过puts __method__一些变体来puts __method__ 。

有没有可能在JavaScript中实现dynamicgetter / setter?

我知道如何通过执行如下操作来为名称已知的属性创buildgetter和setter: // A trivial example: function MyObject(val){ this.count = 0; this.value = val; } MyObject.prototype = { get value(){ return this.count < 2 ? "Go away" : this._value; }, set value(val){ this._value = val + (++this.count); } }; var a = new MyObject('foo'); alert(a.value); // –> "Go away" a.value = 'bar'; alert(a.value); // –> "bar2" […]