Python-Dekore Şablonları

Dekoratörleri ve satır içi ifadeleri içeren Python şablonlama stratejisi
Şimdi İndirin

Python-Dekore Şablonları Sıralama ve Özet

Reklamcılık

  • Rating:
  • Lisans:
  • MIT/X Consortium Lic...
  • Fiyat:
  • FREE
  • Yayıncı adı:
  • Caleb P. Burns
  • yayıncı web sitesi:
  • https://github.com/cpburnz/

Python-Dekore Şablonları Etiketler


Python-Dekore Şablonları Açıklama

Python zaten tamamen işlevsel ve genişletilebilir bir komut dosyası dili için Python içindeki gömülü şablonlama dilleriyle çalışmayı rahatsız ediyorsunuz? Python-dekore-şablonlar, Python için düz bir ford şablonlama stratejisi sağlayan bir piton modülüdür. Katılan tek şey, şablon fonksiyonlarınızı dekore etmektir ve bunlar içindeki tüm ifadeler birleştirilecek ve işlev tamamlanmasında iade edilecektir. 'Bu normalde DOC string olurdu, ancak bu bir ifade gibi çıkacak. '' '' '' Yumurta # Bazı Yumurta Toplamı Çıktı (Xrange (10)) # Çıkış 45 "İşte başka bir string ifadesi." Yazdır "Bunlar, stdout'a basılmış" yazdırılacak "bunlar hala düzenli baskı ifadeleridir." Eğer jambon değilse: # Bu noktaya kadar tüm ifadeler # boş dönüş ifadesiyle iade edilecektir. dönüş "% s jambonu var." % Jambon # Çıktı Ham # Tüm ifadeler, bir # şablonunun sonunda iade edilecektir. Birinin yeniden derlendikten sonra şablonun neye benzeyeceği bir yerde :: ithalat pdt def spam (yumurta, ham = yok) _Buffer = pdt.listio ( ) _Buffer.Write ('' 'normalde bu, DOC dizisi olurdu, ancak bu bir ifade gibi çıkacak.' '') _Buffer.write (yumurta) # Bazı yumurta çıktı. _Buffer.write (toplam (xrange (10))) # çıkış 45 _Buffer.write ("İşte başka bir string ifadesi.") Yazdır "Bunlar, stdout'a basılmış" yazdırılacak "bunlar hala düzenli olarak yazdırılacak." Eğer jambon değilse: # Bu noktaya kadar tüm ifadeler # boş dönüş ifadesiyle iade edilecektir. geri dönüş _buffer.getvalue () _buffer.write ("% s jambonuna sahip olmak". iade _buffer.getValue () şablonu IO tammertemplates, fonksiyonun sonunda geri döndürülen ifade sonuçlarını saklamak için bir dahili tampon kullanın. Özel bir tampon fabrika fonksiyonu argümanları :: ithalat pdt @ pdt.template (io_factory = myfactory, io_args = myargs, io_kw = mykeywords = myargs, io_kw = mykeywords) def spam (...): * io_factory * (** arayabilen **) oluşturur `` Dosya 'benzeri örnekleri Uygulama * Yazma () * ve * GetValue () * arandığında. Tipik olarak, bu bir sınıf nesnesi olacaktır. Varsayılan olarak, bu "Listio``" ". Varsayılan boş bir `` tuple``. * İo_kw * (`` '') İsteğe bağlı olarak anahtar kelime argümanlarını * io_factory * olarak adlandırıldığında * olarak kabul etti. Varsayılan boş bir "" diction`` ("Listio`" sınıfının basitleştirilmiş bir versiyonudur. Veri hiçbiri değil: self.buff.Append (str (veriler)) Def GetValue (öz): iade "" .join (self.Buff) İçe Aktarma PDT @ pdt.template (io_factory = SimpLelistio) def spam (...) : ... İşte sonuçları kodlayan ve onları `cstringio`` kullanarak depolayan bir örnek IO tamponu. Stringio () self.enc = def yazma (öz, veri) kodlama: Eğer veri yoksa: self.buff.write (Unicode (veri) .encode (self.enc)) def getValue (öz): Self.Buff iade. .getValue () PDT @ pdt.template (io_factory = customio, io_kw = {'kodlama': 'latin1'}) DEF spam (...): * io_args * ve * io_kw * konumsal ve anahtar kelime argümansto olarak kabul edilir. * io_factory * sınıf yapıcısı olan. * Yazma () * işlevi, her bir ifadenin birinci (* ver *) argümanındaki sonucunu alır. * Veriler *, bir `` str` ya da `unicode`` için manuel olarak dönüştürülmelidir. Eğer * veriler * "yok" değil, bir değer döndürmeyen fonksiyonlar (yani, `` None`` "her arama için" Yok "çıkmaz. * GetValue () * İşlev Döndürür Birleştirilmiş `` str` ya da `` unicode``'ın her ifadenin * yazma () * 'ye gönderildi. PDT şablonu dekoratörü, sarılmış fonksiyonların kaynağını değiştirir ve ekspresyon çıkışına izin verecek şekilde yeniden derler ... _PTL: http://quixote.ca/only kaynağında `DEF`" dedi işlevleri desteklenir. Metin kaynağının (bayt kodu değil) mevcut olmadığı işlevler desteklenmiyor. Ne kapanıyor, jeneratörler, `` `` `` ı `` `ı. Fonksiyonlar yalnızca bir şablon olarak dekore edilmiş (aşağıda / daha önce) dekore edilebilir ... Not: Jeneratör fonksiyonları future.Product'ın ana sayfasında desteklenebilir


Python-Dekore Şablonları İlgili Yazılım

sabit

Sabit genişlik dosyalarını hızlı bir şekilde işlemek için bir kütüphane ...

36

İndirmek