Python は他の言語と似たような関数を持つが、C++ のような別個のヘッダファイルはないし、Pascal のような interface/implementation セクションもない。こんなふうに、必要な時に関数を宣言する:
def buildConnectionString(params):
関数宣言はキーワード def で始まり、関数名、丸カッコ内に引数、と続くことに注目。複数の引数(ここでは示していない)はコンマで区切られる。
関数は戻り値のデータ型を宣言しないことにも注目。Python の関数は、戻り値のデータ型を指定しないし、戻り値があるかさえ指定しない。実際、Python の関数は値を戻す。もし関数が return 文を実行するなら、その値を戻すし、さもなければ、Python のnull値、None を戻す。
Visual Basic では、関数(値を戻す)は function で、サブルーチン(値を戻さない)は sub で始まる。Python にサブルーチンはない。すべては関数で、すべての関数は値を戻し(None の場合でも)、すべての関数は def で始まる。
引数、仮引数はデータ型を指定しない。 Python では、変数は決して明示的に型付けされない。 Python は、内部的に、変数の型を記録する。
Java、C++、その他の静的型付けの言語では、関数の戻り値と関数の引数のデータ型を指定しなければならない。Python では、何に対しても明示的な型付けを指定しない。どんな値が代入されるかを元に、Python はデータ型を内部的に記録する。
2.2.1. How Python's Datatypes Compare to Other Programming Languages(Pythonのデータ型と、他の言語との比較)
博識な読者が、Python と他の言語との比較を送ってくれました。
statically typed language(静的型付け言語)
コンパイル時に型が決定される言語。多くの静的型付け言語では、変数は、その使用前に、データ型を用いての宣言が必要。Java と C は静的型付け言語。
dynamically typed language(動的型付け言語)
実行時に型が解決される言語で、静的型付けとは正反対。VBScript と Python は動的型付けで、変数は、値を代入された時に初めて、その型がわかる。
strongly typed language(強い型付けの言語)
型付けが常に強制される言語。Java と Python は強い型付け。変換無しでは、integerをstringのようには扱えない。
weakly typed language(弱い型付けの言語)
型付けが無視される言語で、強い型付けとは正反対。VBScript は弱い型付け。VBScript では、stringの '12' とintegerの 3 を結合すると、stringの '123' が得られる。しかもintegerの '123' としても扱える。すべて明示的な変換無しで。
したがって、Python は動的型付け(明示的なデータ型宣言を使わない)で、強い型付け(一度、変数がデータ型を持つと、それは重要になる)の言語である。