【发布时间】:2017-02-10 18:22:42
【问题描述】:
我正在尝试移植此模式以参数化从 Python 到 Ruby 的类:https://github.com/prometheus/client_python/blob/6a8d85e5f64935b6c2a409291e9f6578a7bfe1b0/prometheus_client/core.py#L395-L434
外部方法设置一些变量,然后在内部定义一个关闭这些值的类。结果是从这个返回的类创建的所有对象都共享一些公共状态。
我不能在 Ruby 中这样做,因为 Ruby 不允许在方法中定义类:
def foo
class Bar
end
end
这会产生错误:class definition in method body。
在 Ruby 中执行此操作的正确方法是什么?
【问题讨论】:
-
“Ruby 不允许在方法中定义类”——这是为什么呢?完全允许。
-
尝试在方法中定义一个类给我以下错误:“方法体中的类定义”。
-
请问,您看过本站的规则吗?请发布您尝试运行的代码,发布您收到的错误消息,我将能够显示问题所在。