1. ホーム
  2. python

[解決済み] if __name__ == '__main__'` Rubyでの等価性

2022-10-21 05:14:36

質問

私はRubyの初心者です。 私は、私が別々に使い続けたいツールを含むモジュールから関数をインポートすることを探しています。 Pythonでは、私は単にこれを行うでしょう。

def a():
    ...
def b():
    ...
if __name__ == '__main__':
    a()
    b()

これによって、プログラムを実行したり、モジュールとしてインポートして a() とか b() を別々に使うことができます。 Rubyで同等のパラダイムは何ですか?

どのように解決するのですか?

私が実際に見た Ruby では (当たり前ですが、それほど多くはありません)、これは標準的な Ruby のデザインパターンではありません。モジュールとスクリプトは分離されているはずなので、これを行う良い、きれいな方法が本当にないとしても、私は驚かないでしょう。

EDITです。 見つかりました。

if __FILE__ == $0
    foo()
    bar()
end

しかし、一般的でないことは確かです。