関数は後ろに()を付けることができますが、文字列は後ろに()を付けることができません。
後ろに()を付けることができるものをcallableと呼びます。関数の他にもクラスもcallableです。
callableであるかどうかは、callbleという関数を使って調べることができます。
python
1>>> print(print)
2<built-in function print>
3>>> print(callable(print))
4True
printは組み込み関数(built-in function)なのでcallableです。
python
1>>> print(int)
2<class 'int'>
3>>> print(callable(int))
4True
intはクラス(class)なのでcallableです。
python
1>>> print(callable('Hello'))
2False
3>>> hello = 'Hello'
4>>> print(callable(hello))
5False
'Hello'は文字列なのでcallableではありません。
変数に代入しても同じ事です。
python
1>>> def msg():
2... print("Hello")
3...
4>>> func = msg
5>>> print(func)
6<function msg at 0x000002006991D280>
7>>> print(callable(func))
8True
def msgを行うと、msgという名前の関数が作られます。
これをfuncに代入して調べて見ると、「function msg」として表示されます。
これは間違いではなく、作られたときの名前がmsgだったからです。
そして、funcは関数なのでcallableです。
callableでないものに()を付けるとエラーになります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/30 12:26