2017-12-07 8 views
0
class rand: 

    def __init__(self): 
     self.c = [] 

c = rand() 

len(c) 

で空のリストを取得しようとしています。空__init__リスト

だから、私は上記のコードから期待しています。これです:LEN(C)= 0

はTypeError:型「ランド」のオブジェクトがLEN() を持っていません。しかし、私は上記のエラーを取得しておきます。上記の結果はどのようにして得られますか?

答えて

1

グローバル変数cとその同名の属性は、2つの異なるオブジェクトです。 len(c.c)が必要で、len(c)ではありません。

4

あなたは組み込みの__len__メソッドを使用することができます

class rand: 
    def __init__(self): 
     self.c = [] 
    def __len__(self): 
     return len(self.c) 

c = rand() 
print(len(c)) 

出力:

0 
+3

J.New @あなたの質問ではありませんでした。あなたはあなたが望むものについてもっと明確にする必要があります。 'rand'を実際に' list'のサブクラスにしたいと思うように聞こえます。 – chepner

+0

私はそれを理解しました。あなたの助けをありがとう:) –

+0

@ J.新しいお手伝いをさせて嬉しいです! – Ajax1234