Nasıl setattr diyebilir miyim() geçerli modül?
Ben ilk parametre olarak geçirmek ne "object" işlevi, geçerli modül değişkenlerini ayarlamak için setattr(object, name, value),?
Örneğin:
setattr(object, "SOME_CONSTANT", 42);
aynı etkiyi veren:
SOME_CONSTANT = 42
modül bu satırları içeren (object doğru ile) içinde.
Modül düzeyinde çeşitli değerleri dinamik olarak oluşturmak çalışıyorum, ve modül düzeyinde __getattr__ bulamadım, bu benim geri dönüş.
CEVAP
import sys
thismodule = sys.modules[__name__]
setattr(thismodule, name, value)
veya, setattr kullanmadan soru harf dizileri ama aynı pratik amaçlar karşılayan (; -):
globals()[name] = value
Not: modülü kapsamında, ikinci eşdeğerdir:
vars()[name] = value
hangisi biraz daha kısa, ama çalışmıyor içinden bir işlev (vars() verir değişkenleri kapsamında adı: modülün değişkenlerin zaman denilen küresel kapsamı, ve daha sonra TAMAM kullanacağını R/W, ama işlevin değişkenleri zaman adlı bir fonksiyon, ve öyleyse tedavi olarak R/O -- Python online docs olabilir biraz kafa karıştırıcı bu konuda belirli ayrım).

Nasıl Python geçerli modül içerisindek...
Nasıl Java UTC veya GMT geçerli tarih ...
Nasıl Geçerli sayfayı almak'Windo...
Nasıl Raylar geçerli yol bulabilir miy...
Nasıl iOS kullanıcının geçerli konum a...