2012-03-09 13 views
27

Tüm Pythons anahtar sözcüklerinin listesini dizeler olarak almak istiyorum. Fonksiyonlar için benzer bir şey yapabilseydim, daha da çekici olurdu. BöylePython'da bir anahtar kelime listesi almak mümkün mü?

şey: böylece yerleşik işlevler __builtins__ adlı bir modülde olan

import syntax 
print syntax.keywords 
# prints ['print', 'if', 'for', etc...] 
+1

? Ya da ifade ifadeleri için? Yoksa tüm anahtar kelimelerin bir listesini mi tercih edersiniz? –

+4

neyse: Python dili belgelere bakın: [Basit ifadeleri] (http://docs.python.org/reference/simple_stmts.html), [compund ifadeleri] (http://docs.python.org/reference/compound_stmts. html) ve [Anahtar] (http://docs.python.org/reference/lexical_analysis.html#keywords). –

+1

Neden buna ihtiyacın olduğuna dair biraz bilgi verebilir misiniz? –

cevap

53

Sen, yaklaşık ifadeleri sorularınızın çıkış örneği. Eğer anahtar kelimeler arıyorsanız

, hepsi keyword modülünde listeleniyorsunuz: Dan

>>> import keyword 
>>> keyword.kwlist 
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 
'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 
'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 
'while', 'with', 'yield'] 

keyword.kwlist doc:

tercüman için tanımlanan tüm anahtar kelimeleri içeren

Dizi . Herhangi bir anahtar kelime yalnızca belirli __future__ ifadeleri etkin olduğunda etkin olacak şekilde tanımlanmışsa, bunlar da dahil edilecektir.

from keyword import kwlist 
print kwlist 

standart keyword modül otomatik olarak oluşturulur: Aklıma

+0

Ben, bu cevap sonrası vermedi. –

+0

Bu benim amacım için çalışacak, teşekkürler! – rectangletangle

+0

TBH Sadece onun örneğine baktım ve fark etmedim bile. Tüm 'print',' for' ve 'if' yukarıdaki listede yer almaktadır, bu yüzden ... Neyse, kullanıcıların gelmesi için cevaba bir uyarı koyacağım. –

8

, yer: kelime gösterirken

dir(__builtins__) 
+0

Bu kod bir ithal modül değilse, bunu __ '__builtins olacağını düşünüyorum. Tuşları()' yerine. Veya Python 3'te, 'import builtins' sonra modül ('builtins') modülünden bağımsızdır. https://docs.python.org/3/reference/executionmodel.html "Varsayılan olarak,' __main__' modülünde, 'de __builtins__' yerleşik modül' builtins' olduğu; zaman başka modülünde, '__builtins__ '' builtins 'modülünün sözlüğünün bir takma adıdır. OP "ifadeleri" değil "anahtar kelimeler" istedi çünkü bu OP aradığı cevabı oldukça mümkündür olsa –

4

en yakın yaklaşım şudur. Python'dan ayrılan Python ile ilgili diğer şeyler için, language services modül grubunu kontrol edin.

Eğer CPython tercüman doğrudan uygulanmasını pakette __builtin__ modülünde öğeleri veya fonksiyonlar için soruyorsanız açık değilim yerleşiklerini listeleme ilgili olarak:

import __builtin__ as B 
from inspect import isbuiltin 

# You're either asking for this: 
print [name for name in dir(B) if isbuiltin(getattr(B, name))] 

# Or this: 
print dir(B) 
1

>>> help()

yardım> anahtar kelimeler

Python anahtar kelimelerin bir listesi. Daha fazla yardım almak için herhangi bir anahtar kelime girin.

False def if raise

None del import return

True elif in try

and else is while

as except lambda with

assert finally nonlocal yield

break for not

class from or

continue global pass

sen Atama ifadeleri için bu listede beklediğiniz nedir dize
İlgili konular