2011-03-15 30 views
18
Böyle boto gibi bir 3. taraf l ibrary kullanıyorum

, pycharm muktedir görünüyor otomatik tamamlama oldukça güzelPyCharm, yöntemlerde kodu otomatik olarak tamamlamak için nasıl kullanılır?

enter image description here

Ancak, kısa sürede kendime ait bir fonksiyon tanımlamak olarak, otomatik tamamlama bu işlevin içinde bozulur. Nedenini anlıyorum, çünkü bu işlevin argümanlarıyla ilgili herhangi bir bilgi veremiyorum, bu yüzden otomatik tamamlama işlemini tahmin edemez. Bu sorunun bir yolu var mı?

Düzenleme

I (Python 2 için) docstring'ini kullanarak çalıştı, ancak yine de hiçbir otomatik tamamlama

def delete_oldest_backups(conn, backups_to_keep, backup_description): 
    """ 
    delete_oldest_backups(EC2Connection, int, string) 
    """ 

+0

[Pydev Code Completion for everything] öğesinin olası kopyası (http://stackoverflow.com/questions/6218778/pydev-code-completion-for-everything) – Jonathan

cevap

5

(Ayrıca boto.ec2.connection.EC2Connection yerine EC2Connection arasında çalıştı) Şunları yapabilirsiniz Python 3 parametresini ve dönüş değeri ek açıklamalarını kullanarak fonksiyonun parametreleri hakkındaki tip bilgilerini belirtin. Python 2 kullanıyorsanız, fonksiyonun belgesindeki bilgileri de belirtebilirsiniz. Pycharm örneğin, standart kütüphanede ikili modüllerin Docstringler tarafından kullanılan biçimi anlar:

""" 
foo(int, string) -> list 

Returns the list of something 
""" 
+1

Bunu denedim (bkz. Düzenlenmiş soru), ancak yine de otomatik değil -tamamlayınız.def get_instance_by_name (bağlantı, isim): benim için çalışıyor naither – ripper234

+0

"" " get_instance_by_name (bağlantı, isim) - Belirlenmiş isimde ile> boto.ec2.instance İade örneği nesne "ve bende yok"" Örneğin nesne –

1

pycharm bir nesnenin bir örneğini tanır ve tüm yöntemlerini almak için, aşağıdaki ifadeleri kullanmak zorunda. Ama bence her ikisi de programlama ve çalışma zamanlarını boşa harcamanın korkunç bir yolu.

assert isinstance(instanceX, ClassOfInstanceX) 
instanceX.{#list of method/properties appears} 

Alternatif olarak, aynı zamanda onu çağırmak ve kendini parametresine durumda iletmek istediğiniz yöntem veya özellik her şey hatırlayacaksınız sınıf adını kullanabilir. http://www.jetbrains.com/pycharm/webhelp/type-hinting-in-pycharm.html

def some_method(self, conn): 
    """ 
    @type conn: EC2Connection 
    """ 
    conn.<autocomplete> 
11

için, benim sevme için çok ayrıntılı olduğunu. Ayarlar

Git -> Proje Tercüman ->

Package list

Ve Paketler listesinde Python tercümanları yüklemek tıklayın ve yüklemek istediğiniz kitaplık için arama

Install package

Yüklendikten sonra, otomatik tamamlama editörde mevcut olacaktır.

Autocomple inside function

Umut bu aradığınız budur.

+0

için autocmpliton kullanılabilir PyCharm 5.0.1 üzerinde bir çekicilik gibi çalıştı. Teşekkürler! – Samuel

1

Sen pycharm "paket yöneticisi" üzerinden kütüphane yükleyebilirsiniz: Ama bu esp iç içe sınıfa

Sen tip ipuçlarını kullanabilirsiniz
ClassOfInstanceX.{#list of method/properties appears} 
    # then you will have... 
ClassOfInstance.method(instanceX, args...) 
İlgili konular