Birisi bana yanlış ne yaptığımı söyler misiniz?'Module' nesnesi 'choice' özelliğine sahip değil - random.choice'i kullanmaya çalışıyorum
AttributeError: 'module' object has no attribute 'choice'
Birisi bana yanlış ne yaptığımı söyler misiniz?'Module' nesnesi 'choice' özelliğine sahip değil - random.choice'i kullanmaya çalışıyorum
AttributeError: 'module' object has no attribute 'choice'
bir ithalat sorunu gibi geliyor
import random
foo = ['a', 'b', 'c', 'd', 'e']
random_item = random.choice(foo)
print random_item
Hata: Ben piton kodu çalıştırdığınızda bu mesajı alıyorum. Aynı dizinde random
adlı başka bir modül var mı? Eğer öyleyse (ve eğer print random_item
'dan açık olan python2 üzerindeyseniz), bunun yerine onu içe aktarır. Yerleşik adları gölgelemeyin.
Aşağıdaki kod ile bu test edebilirsiniz: stdlib dan
import random
print random.__file__
fiili random.py
modül path/to/python/lib/random.py
yaşıyor. Seninki başka bir yerdeyse, bu nerede olduğunu söyleyecektir.
Normalde 'path/to/python/lib/pythonX.Y/random.py' değil (gerçekten eski bir Python kullanmıyorsa, 2.3'ten önce düşünüyorum) ? Ayrıca, 3,3 +, belki de random.pyc 'bir .pyc var olsa bile, 2.7 size .py dosyası verir sanmıyorum, ama ben bunu yanlış anlama olabilir. Ama bu küçük nitpicky bitinden başka, harika cevap. – abarnert
Kaydedilmiş olduğum dosya benim masaüstümde. – AMHD
@abarnert benim Python3.3 üzerinde test ve 'got "C: \ Python33 \ lib \ random.py"' –
Karanlıkta çekim: Muhtemelen betiğinize random.py
adını verdiniz. Komut dosyanızı, modülle aynı adı vermeyin.
Bunun nedeni, random
modülünün gerçekten choice
yöntemine sahip olmasından dolayıdır, bu nedenle içe aktarma muhtemelen yanlış (okuma: istenmeyen) modülünü yakalar. Kısacası
Eğer bu düzeltmezse, bir random.pyc dosyasını da kontrol edin. – zimbu668
, Python en çok "rastgele" adlı koyduğu ilk dosyada arayan ve seçim niteliği bulamamaktadır. zamanın
% 99.99, yani zaten "rastgele" adını taşıyordu yol/dizininde bir dosya var demektir. Bu doğruysa, yeniden adlandırın ve tekrar deneyin. İşe yaramalı.
Ben de böyle bir yöntemi random
adlandırarak bu hata var:
import random
def random():
foo = ['a', 'b', 'c', 'd', 'e']
random_item = random.choice(foo)
print random_item
random()
O (bir dosya random.py
adlandırma) senin böyle değil ama bu hata hakkında arama ve bu hatayı yapabilir diğerleri için.
Tam olarak ne yapmak istiyorsun lütfen? – mlwn
@mlwn Listeden 'foo' rastgele bir öğe seçmek istiyorlar, bu açık değil mi? – CoryKramer
Kod benim için kusursuz çalışıyor ... Hangi python sürümünü kullanıyorsunuz? Ve hangi os? Yani sorulan mlwn iki sorudan _either_ açıklamıyor: Ben pycharm topluluk baskısının son sürümünü çalıştırıyorum – mlwn