Bunu sadece REPL içinde, şu ana kadar herhangi bir bloğun dışında denedim. Başka yerlerde de çalışmak mümkün olabilir.
benim piton başlangıç dosyasında bu koyun:
def bareWordHandler(type_, value, traceback_):
if isinstance(value, SyntaxError):
import traceback
# You can probably modify this next line so that it'll work within blocks, as well as outside them:
bareWords = traceback.format_exception(type_, value, traceback_)[1].split()
# At this point we have the raw string that was entered.
# Use whatever logic you want on it to decide what to do.
if bareWords[0] == 'Awesome':
print(' '.join(bareWords[1:]).upper() + '!')
return
bareWordsHandler.originalExceptHookFunction(type_, value, traceback_)
import sys
bareWordsHandler.originalExceptHookFunction = sys.excepthook
sys.excepthook = bareWordsHandler
Hızlı REPL oturumu gösteri afterwords: sorumlu
>>> Awesome bare words
BARE WORDS!
kullanın.
Düzenleme: İşte daha kullanışlı bir örnek. run
anahtar kelimeye ekledim.
if bareWords[0] == 'from' and bareWords[2] == 'run':
atPrompt.autoRun = ['from ' + bareWords[1] + ' import ' + bareWords[3].split('(')[0],
' '.join(bareWords[3:])]
return
atPrompt.autoRun
, benim istemi görüntülendiğinde, otomatik olarak kontrol edilmeli ve geri beslenen olacak değişkenlerin listesidir.
>>> from loadBalanceTester run loadBalancerTest(runJar = False)
Ve bu şekilde yorumlanır alır: Yani, örneğin, bunu yapabilirim
from loadBalancerTest import loadBalancerTest
loadBalancerTest(runJar = False)
It tür bir makro gibi - bana bu tür şeyleri yapmak istiyorum için daha yaygın, Bu yüzden daha az tuşa basmamı sağlayan bir anahtar kelime eklemeye karar verdim.
Niçin aşağı çekme/oy kullanma nedenlerini açıklamak ister? Python'da, tercümanın kaynak kodunu gerçekten değiştirmeye ve yeniden derlemeye gerek kalmadan yeni anahtar kelimeler eklemek isteyen herkes için yararlı olabilecek bilgileri paylaşıyorum. Bu yanlış kullanılabilir mi? Neredeyse kesinlikle olacak. Ama gerçekten bunu yapmak istiyorsan, bunu senin için burada sağladım. Ve eğer bunu yapmak istemiyorsan, o zaman sadece hareket et - küçültme ya da kapanmaya oy verme gereği yok. – ArtOfWarfare
Bunun için ilginç bir kullanım durumu, giriş() olmadan etkileşimli bir komut satırı arabirimi uygulanıyor olabilir. Böylelikle, interaktif bir kabuğun ve bir yandan aynı anda tam bir güce sahip olursunuz. Bu bir anti-desen, ama ilginç. – RobotHumans
Eğrinin çok ötesindesiniz: bu yüzden ... **; -) ** Para kazanacağınız bir tablet icat ederek değil, onu rafine ederek ve yapacağınız bir iPad olarak adlandırın. yukarı-oy (ki bu 5 oyu engelleyecektir) **>: -) ** – Fabby