如何实现等效的 __getattr__在类,模块上于a? 例 当调用模块的静态定义的属性中不存在的函数时,我希望在该模块中创建一个类的实例,并使用与该模块上的属性查找失败相同的名称调用该方法。 class A(object): def salutation(self, accusative): print "hello", accusative # note this function is intentionally on the module, and not the class above def __getattr__(mod, name): return getattr(A(), name) if __name__ == "__main__": # i hope here to have my __getattr__ function above invoked, since # salutation …
我在Rails文档中找不到真正的东西,但似乎'mattr_accessor'是普通Ruby 类中'attr_accessor'(getter&setter)的模块推论。 例如。在课堂上 class User attr_accessor :name def set_fullname @name = "#{self.first_name} #{self.last_name}" end end 例如。在一个模块中 module Authentication mattr_accessor :current_user def login @current_user = session[:user_id] || nil end end 此辅助方法由ActiveSupport提供。