2015-07-12 50 views
7
İşte

sekme tamamlama benim için nasıl çalıştığını geçerli: dizeleriSekme tamamlama

In [84]: a="string" 

In [85]: b = ["str", "ing"] 

Sekme tamamlama burada çalışıyor: listeleri için

In [86]: a. 
a.capitalize a.decode  a.expandtabs a.index  a.isdigit  a.istitle  a.ljust  a.partition a.rindex  a.rsplit  a.splitlines a.swapcase a.upper  
a.center  a.encode  a.find  a.isalnum  a.islower  a.isupper  a.lower  a.replace  a.rjust  a.rstrip  a.startswith a.title  a.zfill  
a.count  a.endswith a.format  a.isalpha  a.isspace  a.join  a.lstrip  a.rfind  a.rpartition a.split  a.strip  a.translate 

Sekme tamamlama burada çalışıyor: dizeleri

In [86]: b. 
b.append b.count b.extend b.index b.insert b.pop  b.remove b.reverse b.sort  

Sekme tamamlama burada çalışmıyor:

In [87]: b[0]. 

olası bir geçici çözüm:

In [88]: c = b[0] 

In [89]: c. 
c.capitalize c.decode  c.expandtabs c.index  c.isdigit  c.istitle  c.ljust  c.partition c.rindex  c.rsplit  c.splitlines c.swapcase c.upper  
c.center  c.encode  c.find  c.isalnum  c.islower  c.isupper  c.lower  c.replace  c.rjust  c.rstrip  c.startswith c.title  c.zfill  
c.count  c.endswith c.format  c.isalpha  c.isspace  c.join  c.lstrip  c.rfind  c.rpartition c.split  c.strip  c.translate 

o sözü geçici çözümü dışında tamamlanmasını kullanmak mümkün mü? Ipdb'de benzer davranışlar yaşıyorum, bu davranışı orada da düzeltmek mümkün mü? Ipythoon v3.1.0 ve ipdb v 0.8 kullanıyorum. Teşekkür

cevap

5

profil ipython oluşturun:

# Activate greedy completion 
# 
# This will enable completion on elements of lists, results of function calls, 
# etc., but can be unsafe because the code is actually evaluated on TAB. 
c.IPCompleter.greedy = True 

Yük ipython Bu profille bu satırı un-Yorum

ipython profile create testing 

ipython_config.pyyılında:

ipython notebook --profile=testing 

Bu TAB verir liste üyeleri ve sözlük tuşları ve değerleri için tamamlama.


biri hızlı alternatif dir kullanmaktır() yöntemi:

dir(b[0]) 

#returns: 

['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] 

başka yöntem tamamlamaları yapabilir Python veya IPython interaktif konsol veya PTVS düzenli editörü kullanmaktır liste elemanlarında (intellisense).

+0

Evet, ancak bu başka bir geçici çözümdür. Birincil hedef sekme tuşunu kullanmaktır. Bazh/etc/bash_completion gibi bazı konfigürasyonlar, bu PTVS IDE –

+0

ince olurdu jedi: https://github.com/ipython/ipython/issues/8606 – denfromufa

+0

ipython otomatik tamamlamada çalışır gibi iyi – denfromufa