pythonでのリロード
4296 ワード
いくつかの静的言語では、ほとんどがリロードされた概念が存在します.これは、OOP(オブジェクトに面したプログラミング)において不可欠な行為である.リロードとは、複数の同じ関数名の関数であり、入力されたパラメータの個数、パラメータタイプに応じて異なる機能が実行される.したがって、関数リロードは実質的にプログラミングにおけるパラメータの可変不統一の問題を解決するためである.
pythonでのリロード
pythonでは、重荷の思想を持っているが、重荷の概念がない.だからpythonのような言語は関数のリロードをサポートしていないと言う人もいれば、pythonはリロード機能を持っていると言う人もいます.実際にpythonプログラミングではリロードの目的が欠けていてリロードされていない動作、あるいはpythonはリロードする必要はありません! pythonは動的言語であり、変数タイプを宣言する必要はなく、関数の中で任意のタイプのパラメータを受け入れることができ、パラメータタイプに基づいてリロードをサポートすることはできません.pythonはパラメータのタイプ問題を考慮する必要はありません.これらは関数内部で処理を判断することができ、関数を書く必要はありません.pythonには様々なパラメータがあり、デフォルトのパラメータ/可変パラメータ/可変キーワードパラメータは関数パラメータのパラメータ可変の問題を処理することができます.
python3.4で増加したリロードメカニズム
重荷をしなくても体が苦しくなるならpython 3.4では、リロードを実現するための転送メカニズムが提供されています.
pythonでのリロード
pythonでは、重荷の思想を持っているが、重荷の概念がない.だからpythonのような言語は関数のリロードをサポートしていないと言う人もいれば、pythonはリロード機能を持っていると言う人もいます.実際にpythonプログラミングではリロードの目的が欠けていてリロードされていない動作、あるいはpythonはリロードする必要はありません! pythonは動的言語であり、変数タイプを宣言する必要はなく、関数の中で任意のタイプのパラメータを受け入れることができ、パラメータタイプに基づいてリロードをサポートすることはできません.pythonはパラメータのタイプ問題を考慮する必要はありません.これらは関数内部で処理を判断することができ、関数を書く必要はありません.pythonには様々なパラメータがあり、デフォルトのパラメータ/可変パラメータ/可変キーワードパラメータは関数パラメータのパラメータ可変の問題を処理することができます.
python3.4で増加したリロードメカニズム
重荷をしなくても体が苦しくなるならpython 3.4では、リロードを実現するための転送メカニズムが提供されています.
from functools import singledispatch
@singledispatch
def function(obj):
print('%r'%(obj))
@function.register(int)
def function_int(obj):
print('Integer: %d'%(obj))
@function.register(str)
def function_int(obj):
print('String: %s'%(obj))
@function.register(list)
def function_list(obj):
print('List: %r'%(obj))
if __name__ == "__main__":
function(1)
function('hello')
function(range(3))
function(object)