81

Rubyシンボルに相当するPythonはありますか?

  • もしそうなら、それは何ですか?

  • そうでない場合、辞書のみで文字列キーとして使用することに固執していますか?

4

5 に答える 5

79

いいえ、python にはシンボル型がありません。

ただし、文字列リテラルはデフォルトでインターンされ、intern関数を使用して他の文字列をインターンすることができます。したがって、辞書で文字列リテラルをキーとして使用することは、ルビでシンボルを使用するよりもパフォーマンスが劣ることはありません。

于 2010-09-18T21:19:14.140 に答える
20

他の人が言ったように、Python にはシンボルはありませんが、文字列はうまく機能します。

文字列をキーとして引用しないようにするには、dict() コンストラクター構文を使用します。

d = dict(
    a = 1,
    b = 2,
    c = "Hello there",
    )
于 2010-09-18T23:21:41.473 に答える
7
  1. いいえ、同等のものはありません。
  2. いいえ、すべてのハッシュ可能なオブジェクトを辞書キーとして使用できます。
于 2010-09-18T21:18:38.587 に答える
4

ファーストクラスの型ではありませんが、https://pypi.python.org/pypi/SymbolTypeが存在します。

于 2013-07-20T22:11:04.267 に答える