1

たとえば、次の関数を宣言するとします。

>>> def fun(a, b):
...     a.pop()
...     a.pop()
...     b.add(a.pop())
...     return b
... 

この関数はあらゆるタイプのデータを受け取りますが、'set' 型の引数のみを受け取りたいとしましょう。なぜなら、この関数内で何らかの理由で add() メソッドと pop() メソッドを使用する必要があるためです。任意の「セット」で。この関数は「set」型の引数のみを受け入れるとどのように言えますか?

4

4 に答える 4

2

タイプを割り当てたい場合だと思います。関数でそれを行うことができます:

if not isinstance(item, set):
    raise TypeError()

そうしないと、不正な操作が発生したときにコードで例外が発生します。合理的です。try...exceptまたは、例外が必要ない場合は、コードを でラップできます。

try:
    ...
except:
    ...
于 2013-07-28T00:02:05.417 に答える
1

isinstance()タイプを確認するために使用できます:

>>> def fun(a, b):
...     if not (isinstance(a, set) and isinstance(b, set)):
...         raise TypeError("Please only call this function with sets as the arguments")
...     a.pop()
...     a.pop()
...     b.add(a.pop())
...     return b
于 2013-07-28T00:01:35.283 に答える
0

以下を使用します。

 if isinstance(item, set):
     ...

この関数はブール値を返します。

于 2013-07-27T23:59:04.673 に答える