私はPythonの授業時間の相続(descadent)を作成します。私は次のスクリプトから解決使用しますが、私は「builtin_function_or方法」インスタンスを作成することはできませんメッセージを得ます。問題はどこにあるの?Pythonの継承(OOP)
from time import time as time
import _classA
class UserTime(time):
def __init__(self):
pass
私はPythonの授業時間の相続(descadent)を作成します。私は次のスクリプトから解決使用しますが、私は「builtin_function_or方法」インスタンスを作成することはできませんメッセージを得ます。問題はどこにあるの?Pythonの継承(OOP)
from time import time as time
import _classA
class UserTime(time):
def __init__(self):
pass
。
datetime.timeは、あなたの代わりに必要なものかもしれません。
time.time
は、クラスではない関数です。関数から継承することはできません。モジュール時間では、struct_time
はクラスとして定義されています。あなたはそのエラーメッセージを取得している理由は機能ではなく、クラスが、そこにあるインポートしたthe Python docs for time.time、time
に基づいて
from time import struct_time as time
class MyTime(time) :
def __init__(self, time_as_sequence) :
time.__init__(self, time_as_sequence)
# Do what you like
実際にあなたがしようとしているのは、ILLIGAL :) とにかく、できないクラス時間のメソッドをサブクラス化しようとしています。 はここで少し説明理由です:あなたはtime.timeの上に見ることができるものから、
>>> import time
>>> type(time.time)
<class 'builtin_function_or_method'>
>>> type(time)
<class 'module'>
は、(この場合は、クラス「時間」)クラスの組み込み関数やメソッドである、あなたはキャストしても「time」自体に型を入力すると、サブクラス化することはできないタイプのモジュール「module」が生成されます。
import time
class A(type(time)):
pass
、それは魔法のようにあなたが望むものである種類のクラスの「タイプ」、と回答のようになります。あなたはそれが(私の意見では)役に立たないので、私はreccomendしていない何かができる しかし、あなたの質問に。
>>> type(A)
<class 'type'>
しかし、あなたは多分それに対処しなければならないので、私の質問は、実際に何を達成しようとしているのですか?場面の背後にある種類の魔法を、いろいろなやり方で(簡単に)できるようにする必要が本当にありますか?
[メタクラスベースを呼び出すときのエラー:function()引数は、strでなくcodeでなければなりません](https://stackoverflow.com/questions/2231427/error-when-calling-the-metaclass-base -function-argument-1-must-be-code-not) – ezdazuzena