2011-07-07 23 views
33

Ne buna göre PEP8 için aşağıdaki kod parçasını biçimlendirmek için en iyi yoldur: İlk satırda birden fazla parametreyi yerleştirirsenizPython fonksiyon argüman listesi

oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer, 
    token=token, verifier=verifier, http_url=ACCESS_TOKEN_URL) 

sorundur, hat 79 aşması karakter. Ben 4 boşluklu ayrı bir satıra parametrelerin her yerleştirirseniz oldukça çirkin görünüyor çukurlaşma:

oauth_request = oauth.OAuthRequest.from_consumer_and_token(
         consumer, 
         token=token, 
         verifier=verifier, 
         http_url=ACCESS_TOKEN_URL) 
:

oauth_request = oauth.OAuthRequest.from_consumer_and_token(
    consumer, 
    token=token, 
    verifier=verifier, 
    http_url=ACCESS_TOKEN_URL) 

Ben ile gelip en iyi seçenek daha iyi ayırmada için ekstra girinti eklemektir

İlk satırda uzun bir çağrı ve tek bir satıra sığmayan çeşitli parametreler için kullanmam için genel bir kural oluşturmaya çalışıyorum.

cevap

24

documentation okumam hem 2 hem de 3'ün kabul edilebilir olduğunu, ancak 2'nin tercih edildiğini gösteriyor (Ben bunu 2'den 3'e benziyor çünkü örneklerde bu şekilde ele alındığını düşünüyorum) stil belirtiminin burada çok özel olduğunu). 1 çıktı (Arguments on first line forbidden when not using vertical alignment satırının altındaki belgelere bakın)

+2

Katılmıyorum, 3 tercih ediyorum. Devam etmek için normal blok yapı girintilerinden (4 boşluk) daha büyük devam eden girintiler yapmayı seviyorum. Normalde, ilk argümanla (açılış parenini izleyerek) devam eden çağrı argümanlarını sıraya koyardım. Ancak bu durumda (yeterli alan olmadığı için) devam çizgileri, eşittir işaretini izleyen “oauth” kelimesinin altında sıralanmalıdır. –

+0

@Don Eh, belgelerin okunması her ikisi de iyi. Sadece 2'nin bir grup örnekte olduğunu fark ettim. Yine de, standart 4 alandan farklı bir boşluk olduğunu düşünüyorum. Hakikaten, tüm argümanları çağrılan yöntemin açık pareniyle hizalamak için güçlü bir tercihim var, ama bu benim içsel olarak “Pythonic” ten daha çok benim kullandığım şeyle daha fazla ilgisi var. – cwallenpoole

+0

Ben de katılmıyorum. Bağladığınız belgelerde, bu yayında sağlanan ilk ve ikinci örnek, kullanılmaması gerektiğini belirten "No:" bölümünde açıkça listelenir. Açıklığa kavuşturmak için, her bir argümanın kendi hattında olması şart değildir. Bununla birlikte, birden çok satırda bir ifadeye devam etmeniz gerektiğinde, her satırın, çocuk veya kardeş bloklarından ayırt etmek için ekstra (yani çift) girintiye sahip olması gerekir. Son örnek, ekstra girinti nedeniyle teknik olarak kabul edilebilir, ancak her ekstra hat için 8 alan sekmesi kullanılması tercih edilir. –