object
キーワードには、次のようなクラス以外の用途がありますか?
class HelloWorld(object):
pass
なぜなら、それに変数を割り当てるとき、object
それは役に立たない(何もないvariable.__dict__
か何か)ように見えるからです。
例えば:
x=object()
x.anything="foo"#<----- throws an error
object
キーワードには、次のようなクラス以外の用途がありますか?
class HelloWorld(object):
pass
なぜなら、それに変数を割り当てるとき、object
それは役に立たない(何もないvariable.__dict__
か何か)ように見えるからです。
例えば:
x=object()
x.anything="foo"#<----- throws an error
考えられる用途の1つは、番兵の値です。これは、誤って複製できない一意の値が必要な場合です。例えば:
NOT_SET = object()
def some_function(arg=NOT_SET):
if arg is NOT_SET:
# the user didn't pass in a value for 'arg'
else:
# the user passed in a value for 'arg'
すべてのオブジェクトインスタンスには一意のIDがあるため、if
ステートメントの条件は、ユーザーが値を渡さなかった場合にのみtrueになります(None
ユーザーが一部の関数に渡す可能性のあるパラメーターの一般的なデフォルト値とは異なります)。