Bir komut dosyasının kaynak kodunu yazdırmak mümkün mü (python iç gözlemini kullanmıyor olabilir)?Kaynağını yazdırır Python komut dosyası
Ayrıca kaynağını da yazdıran kısa bir python komut dosyasını çalıştırmak istiyorum (böylece hangi komutların yürütüldüğünü görebilirim).
command1()
#command2()
command3()
print some_variable_that_contain_src
gerçek uygulamam run -i
büyü ile ipython bir komut dosyası çalıştırmak istediğiniz ve çıktı olarak kaynağını (yani komutlar çalıştırılır) sahip olmasıdır:
komut dosyası aşağıdaki gibi bir şeydir. Bu şekilde her işlemde hangi komutların yorumlandığını kontrol edebilirim. Ayrıca, bir Defterde çalıştırılırsa, hangi komutların kullanıldığına dair bir iz bırakırım.
Çözüm
ben bu tek astar ile bitirmek çözüm programın başında konması korylprince kullanma:
with open(__file__) as f: print '\n'.join(f.read().split('\n')[1:])
Bu (ilk satır hariç komut kaynağını yazdırır Bu sadece gürültü olurdu). Ayrıca, betiğin farklı bir "dilimini" basmak için dilimlemeyi değiştirmek de kolaydır. Ben de incelemek paket programı kullanılarak çalıştı
import my_module
print open(my_module.__file__).read()
: en basit yanıt için
with open(__file__) as f: print f.read()
python: http://www.python.org/doc//current/library/inspect.html adresindeki inceleme paketine bakın. Spesifik olarak 'kaynak' yöntemi – Greg
Bu tür programlara Quine programları denir. http://en.wikipedia.org/wiki/Quine_(computing) Kendimi python'a yazmayı deniyorum, çok zor. :( – thefourtheye
Neden ilk satırı kaldırabilirsiniz? Çalıştırdığınızda, kaynak kodunun basılmasıyla ilgili hiçbir şey içermeyen kaynak kodu * basar. * Bu kafa karıştırıcıdır. yorum ya da iddialar şunlardır: – user2357112