- blogs:
- cles::blog
2018/05/07
Python で関数名を付け替える
pythonpython 関数は 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 を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . Word で数式がグレーアウトされていて挿入できないときは(8645)
2 . awk で指定した n カラム目以降を出力する(6673)
3 . Windows 10 で勝手にログアウトされないようにする(6406)
4 . Thunderbird のメッセージをスレッド化しないようにする(5704)
5 . ネットワーク機器を廃棄する前に設定情報の消去を(4689)
2 . awk で指定した n カラム目以降を出力する(6673)
3 . Windows 10 で勝手にログアウトされないようにする(6406)
4 . Thunderbird のメッセージをスレッド化しないようにする(5704)
5 . ネットワーク機器を廃棄する前に設定情報の消去を(4689)
cles::blogについて
Referrers