Koks yra Python pavadinimo susitarimas kintamųjų ir funkcijų pavadinimams?

Pagal C # foną, kintamųjų ir metodų pavadinimų pavadinimo tvarka paprastai yra „CamelCase“ arba „Pascal Case“:

 // C# example string thisIsMyVariable = "a" public void ThisIsMyMethod() 

Pythone minėjau pirmiau, bet aš taip pat pamačiau, kad yra pabrėžti:

 # python example this_is_my_variable = 'a' def this_is_my_function(): 

Ar yra pageidaujamas „Python“ kodavimo stilius?

464
02 окт. nustatė Ray Vega 02 okt. 2008-10-02 00:01 '08, 12:01 am 2008-10-02 00:01
@ 11 atsakymų

Žr. Python PEP 8 .

Funkcijų pavadinimai turėtų būti mažos raidės, o žodžiai turi būti atskirti pabraukimais, taip pat ir geresnis skaitymas.

mixedCase leidžiama tik tuose kontekstuose, kuriuose stilius jau vyrauja.

Kintamieji ...

Naudokite funkcijų pavadinimo konvencijas: mažesnės raidės su žodžiais atskirtos, kad reikia gerinti skaitymą.

Asmeniškai aš nukrypstu nuo to, nes aš taip pat norėčiau, kad mano projektams „ mixedCase už „ mixedCase .

560
02 окт. atsakymas pateikiamas S.Lott 02 okt. 2008-10-02 00:05 '08 at 0:05 2008-10-02 00:05

„Google Python“ stiliaus vadovas turi tokią konvenciją:

modulio pavadinimas, paketo pavadinimas, klasės pavadinimas, naudotojo vardas, egzemplioriaus pavadinimas, funkcijos_pavadinimas, GLOBAL_CONSTANT_NAME, global_var_name, instance_var_name, funkcija_parametr.

399
08 дек. Atsakymą pateikė JohnTESlade 08 dec. 2011-12-08 01:44 '11 prie 1:44 2011-12-08 01:44

Davidas Goodgeris („Kaip kodą kaip„ Pythonista “ čia ) apibūdina PEP 8 rekomendacijas:

  • funkcijų, metodų, atributų, kintamųjų funkcijoms

  • joined_lower arba ALL_CAPS už pastovią

  • StudlyCaps klasėms

  • camelCase tik tam, kad atitiktų jau egzistuojančius susitarimus

176
02 окт. atsakymas pateikiamas nesurinkta 02 okt. 2008-10-02 06:53 '08 at 6:53 am 2008-10-02 06:53

Yra PEP 8 , kaip parodyta kitų atsakymų, tačiau PEP 8 yra tik standartinės bibliotekos stilius ir yra naudojamas tik kaip evangelija. Vienas iš dažniausių PEP 8 nukrypimų kitiems kodų fragmentams yra kintamųjų pavadinimai, ypač metodams. Nėra vieno vyraujančio stiliaus, nors, atsižvelgiant į kodo, kurį naudoja „MixCase“, kiekį, jei kas nors turėjo atlikti griežtą surašymą, PEP 8 versija su mišriu etapu tikriausiai baigsis. Yra šiek tiek kitoks nukrypimas nuo PEP 8, kuris yra gana dažnas.

29
02 окт. Atsakyti Thomas Wouters 02 spalis 2008-10-02 00:12 '08, 12:12 2008-10-02 00:12

Kaip leidžia „ Python“ kodo stiliaus vadovas ,

„Python“ bibliotekos pavadinimų konvencijos yra šiek tiek nepatogios, taigi mes niekada to visiškai nesuderinsime

Atminkite, kad tai taikoma tik standartinei Python bibliotekai. Jei jie negali gauti to koncertuose, tuomet yra mažai vilties, kad visai „Python“ kodai turi bendrą susitarimą, ar ne?

Iš to ir diskusiją galėčiau daryti išvadą, kad, jei ir toliau naudojatės, tai nėra baisi nuodėmė. „Java“ arba „C #“ (aiškūs ir gerai nustatyti) kintamųjų ir funkcijų pavadinimo susitarimai, kai pereinama į „Python“. Žinoma, turint omenyje, kad geriausia būtų laikytis bet kokio vyraujančio kodo bazės / projekto / komandos stiliaus. Kaip nurodo „Python“ stiliaus vadovas, svarbus vidinis nuoseklumas.

Nesivaržykite atleisti mane kaip eretiką :-) Kaip OP, aš nesu „Pythonista“, ne visi.

29
25 апр. Joniko atsakymas, pateiktas balandžio 25 d 2010-04-25 14:23 '10, 14:23 PM 2010-04-25 14:23

Kaip jau buvo minėta, PEP 8 sako, kad kintamiesiems, metodams ir funkcijoms naudoti lower_case_with_underscores .

Norėčiau naudoti mixedCase kintamuosius ir mixedCase metodams ir funkcijoms, kodą padarant aiškesnį ir aiškesnį. Taigi po „PythonZeno „aiškus yra geriau nei numanomas“ ir „skaitymo skaičiavimas“

25
05 нояб. Atsakymą pateikė Claytron 05 lapkričio. 2008-11-05 05:51 '08 at 5:51 am 2008-11-05 05:51

Dauguma „python“ naudotojų nori pabrėžti, bet net aš naudoju python'ą, nes man tai nepatiko daugiau nei 5 metus. Jie tiesiog atrodo bjaurūs man, bet galbūt visi Java galvoje.

Man patinka CamelCase geriau, nes ji geriau tinka klasėms, vadinamoms klasėmis. Labiau logiška turėti „ SomeClass.doSomething() nei „ SomeClass.do_something() . Jei pažvelgsite į pasaulinį modulinį indeksą „python“, rasite abu, nes tai yra bibliotekų iš įvairių šaltinių, išaugusių viršvalandžius, rinkinys, o ne kažkas, kurią sukūrė viena įmonė, pvz., „Sun“, su griežtomis taisyklėmis kodavimas, norėčiau pasakyti, esmė: naudoti viską, ką norite, tai tik asmeninio skonio reikalas.

13
02 окт. atsakymas duotas André 02 okt. 2008-10-02 00:16 '08 at 12:16 2008-10-02 00:16

Asmeniškai aš bandau naudoti „CamelCase“ mišrioms „Case“ klasėms, metodams ir funkcijoms. Kintamieji paprastai pažymimi (jei prisimenu). Taigi galiu iš karto pasakyti, ką aš vadinu, o ne viską, kas atrodo vienodai.

13
02 окт. atsakymas, gautas iš kristalinės 02 spalio 2008-10-02 06:24 '08 at 6:24 2008-10-02 06:24

Paprastai vadovaukitės standartinėmis kalbų bibliotekomis.

2
02 окт. atsakymas pateikiamas yfeldblum 02 okt. 2008-10-02 06:55 '08, 6:55 am 2008-10-02 06:55

Yra straipsnis apie tai: http://www.cs.kent.edu/~jmaletic/papers/ICPC2010-CamelCaseUnderScoreClouds.pdf

Jei esate tingus skaityti, jis sako, kad snake_case yra lengviau skaitoma nei camelCase. Štai kodėl šiuolaikinės kalbos naudoja (arba turėtų naudoti) gyvatę, kad ir kur jos būtų.

2
09 мая '16 в 19:20 2016-05-09 19:20 atsakymas, pateiktas alebianui gegužės 09 '16, 19:20 2016-05-09 19:20

Kodavimo stilius paprastai yra organizacijos vidaus politikos / konvencijų dalis, bet manau, kad apskritai „all_lower_case_underscore_separator“ stilius (dar vadinamas snake_case) yra dažniausiai naudojamas pythone.

2
02 окт. atsakymas duotas fuentesjr 02 okt. 2008-10-02 00:08 '08 at 0:08 2008-10-02 00:08

Žr. Kitus klausimus apie nurodančius „ arba Užduoti klausimą