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ユーザーが一部の関数に渡す可能性のあるパラメーターの一般的なデフォルト値とは異なります)。