2016-08-22 10 views
1

私はPythonコードを実行しようとしていますが、これはエラーの原因と思われます。私初心者向けPythonの 'builtin_function_or_method'オブジェクトには属性エラーがありません

def randomPlace(b,lis): 
    pos = [] 
    for i in lis: 
     if available(b,i): 
      pos.append(i) 

    if len.pos() != 0: 
     return random.choice(pos) 
    else: 
     return None 

bを助けてください10個の文字を持つリストであるとlisは4つの整数 エラーを持つリストである:

Traceback (most recent call last):

File "D:\TestsPython\TicTacToe.py", line 65, in randomPlace if len.pos() != 0: AttributeError: 'builtin_function_or_method' object has no attribute 'pos'

+6

'len(pos)'を意味しましたか? –

+0

ああ、私はとても馬鹿だと思う、ありがとう、それは働いた –

答えて

1

表現len.pos()は(lenを見つけるために、標準の通訳を依頼内蔵pos属性(手掛かりはありません)とその結果を参照する呼び出しを調べます。あなたが実際にposの値にlen機能を適用したい、そのためのコード

if len(pos) != 0: 

lenが常に整数の結果を返しますので、あなたはしかし、

if len(pos): 

覚えるにこれを省略することができなければなりません。その空のコンテナがBoolenコンテキストで偽evvaluateと非空容器がTrueに評価、それは

if pos: 
1

使用len(pos)にこれを短縮するのが一般的です。

pythonでリストのサイズを調べるには、構文はlen(your_list)です。

あなたの場合、len機能は必要ありません。あなたは、単に行うことがあります。

if pos: 
    return random.choice(pos) 
else: 
    return None 

リストは任意の要素を持っている場合は、ifTrueとさせて頂きますので。空のリストの場合は、Falseとして扱われます。

関連する問題