1. ホーム
  2. python

[解決済み] Pythonの関数では、渡すパラメータの種類はどのように扱われるのですか?

2022-03-23 17:03:28

質問

間違っていなければ、Pythonで関数を作成すると、次のようになります。

def my_func(param1, param2):
    # stuff

しかし、実際にはそれらのパラメーターの型は与えられていません。また、私の記憶では、Pythonは強く型付けされた言語であり、そのため、Pythonは関数作成者の期待とは異なる型のパラメータを渡すことを許さないように思われるのです。 しかし、Pythonは関数のユーザが適切な型を渡していることをどのようにして知るのでしょうか?関数が実際にパラメータを使用すると仮定して、それが間違った型であった場合、プログラムはただ死ぬのでしょうか?型を指定する必要があるのでしょうか?

どのように解決するのですか?

Pythonは強型付けされており、すべてのオブジェクトは があります。 型、すべてのオブジェクト 知っている のオブジェクトであるかのように、ある型のオブジェクトを偶然または意図的に使用することはできません。 異なる の型があり、オブジェクトに対するすべての基本操作はその型に委ねられる。

とは何の関係もありません。 名前 . A 名称 Pythonでは、quot;have a type"はありません:名前が定義されると、その名前は オブジェクト で、その オブジェクト は型を持っています (しかし、それは実際には 名前 名前は名前です)。

Pythonの名前は、(すべてではありませんが、ほとんどのプログラミング言語で)異なる時に異なるオブジェクトを参照することが完全に可能で、一度X型のオブジェクトを参照したなら、その後は永遠にX型の他のオブジェクトのみを参照するように制約されるような名前はありません。 名前 は強い型付けの概念には含まれません。 スタティック 型付け(ここで、名前 する 静的な、つまりコンパイル時の方法で制約を受ける)このように用語を誤用することがあります。