2

Python のビルトイン open をサブクラス化することは可能ですか? 次のエラーが断続的に発生します。

class Open(open):
    pass

x = mymodule.Open()

TypeError: メタクラス ベースを呼び出すときにエラーが発生し、'builtin_function_or_method' インスタンスを作成できません

4

2 に答える 2

6

openクラスではなく、関数です。ただし、fileオブジェクトはサブクラス化できるタイプです。

type(open)
# OUT: <type 'builtin_function_or_method'>
type(file)
# OUT: <type 'type'>
于 2012-12-30T23:52:27.190 に答える
2

openは関数であり、クラスではありません。クラスのみをサブクラス化できます。

于 2012-12-30T23:50:58.113 に答える