BLOGTIMES
2018/05/07

Python で関数名を付け替える

  python 
このエントリーをはてなブックマークに追加

python 関数は first-class なので、当たり前のことながら実行中に関数の名前を付け替えることができます
途中で関数名を変更するのはあまり行儀がよくありませんが、いちおうこんな感じで名前のスワップができることは確認できました。

$ python Python 2.7.13 (default, Nov 24 2017, 17:33:09) [GCC 6.3.0 20170516] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> def a(): ... return 'A' ... >>> def b(): ... return 'B' ... >>> print("a():"+a()) a():A >>> print("b():"+b()) b():B >>> >>> tmp = a >>> a = b >>> b = tmp >>> >>> print("a():"+a()) a():B >>> print("b():"+b()) b():A >>> tmp <function a at 0x768b0530> >>> del tmp >>> tmp Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'tmp' is not defined >>>

入れ替えをするために tmp という一時変数を使っていますが、これについては明示的に del で削除してやらないと予期せず関数が残りっぱなしになってしまうので注意が必要です。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10155
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン