0

ランダムな文字列を生成するために、次の関数 (かなり単純だと思います) を使用しています。

import sys
import string
import random

    def random(size=16):
        lst = [random.choice(string.ascii_letters + string.digits) for n in xrange(size)]
        str = "".join(lst)
        return str

ただし、次のエラーが発生し続けます。

AttributeError: 'function' object has no attribute 'choice'

誰かが私のコードの何が問題なのか教えてもらえますか? Google は役に立たないようです。また、私は Python に慣れていないため、自分で効果的にトラブルシューティングを行うことができません。

4

2 に答える 2

3

import random関数定義で をオーバーライドしています。

randomPython 名前空間の「ランダムな」名前は、意図したモジュールではなく、関数を参照しています。

関数名を次のように変更しますrandom_str

于 2012-11-15T11:40:26.683 に答える
1

randomモジュールの名前でもある場合、関数の名前を使用しています。関数の名前を別の名前に変更すると、機能します。

于 2012-11-15T11:40:34.077 に答える