Айнымалы және функция аттары үшін Python атау конвенциясы деген не?

C # фонының негізінде, айнымалылар мен әдістердің атауларына арналған атау конвенция әдетте CamelCase немесе Pascal Case болып табылады:

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

В Python, мен жоғарыда көрді, бірақ мен көрдім, бұл төменгі шекара пайдаланылады:

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

Python үшін қолайлы, нақты кодтау стилі бар ма?

464
02 окт. Рэй Веганың 02 oct. 2008-10-02 00:01 '08 12:01 2008-10-02 00:01
@ 11 жауап

Python PEP 8 бөлімін қараңыз.

Функция атаулары төменгі сызықпен, төменгі сызықтармен бөлектелген сөздермен, жақсартылған оқуға арналған сияқты болуы керек.

mixedCase тек стилі басым болған контексттерде ғана рұқсат етіледі.

Айнымалылар ...

Функцияларды атау конвенцияларын қолданыңыз: бөлінген сөздермен кіші әріп оқылатындығын жақсарту қажеттілігін көрсетеді.

Мен өзімнің жобаларым үшін mixedCase де mixedCase , себебі мен mixedCase бар.

560
02 окт. жауап 02 қар . 2008-10-02 00:05 '08 сағат 00:05 2008-10-02 00:05

Google Python стилі нұсқаулығы келесі конвенцияны қамтиды:

border=0

module_name, package_name, сынып атауы, user_name, instance_name, function_name, GLOBAL_CONSTANT_NAME, global_var_name, instance_var_name, function_parameter_name, local_var_name

399
08 дек. Жауап JohnTESlade 08 желтоқсан. 2011-12-08 01:44 '11 at 1:44 2011-12-08 01:44

Дэвид Гудгер («Питонистің коды сияқты» деген мақалада) PEP 8-ті ұсыныстарды келесідей сипаттайды:

  • Функциялар, әдістер, атрибуттар, айнымалылар үшін joined_lower

  • joined_lower немесе ALL_CAPS тұрақты

  • StudlyCaps арналған StudlyCaps

  • camelCase тек бұрыннан бар келісімдерге сәйкес келеді

176
02 окт. жауап 02 қазаннан бөлінген. 2008-10-02 06:53 '08 6:53 pm 2008-10-02 06:53

Басқа жауаптарда көрсетілгендей, PEP 8 бар, бірақ PEP 8 стандартты кітапхананың стилі ғана болып табылады және ол тек Інжіл ретінде пайдаланылады. Басқа кодының фрагменттері үшін PEP 8-нің жиі ауытқуының бірі айнымалылардың аталуы, әсіресе әдістер үшін. Бірде-бір басым стилі жоқ, бірақ егер біреу қатаң санақ жүргізу керек болса, аралас Case қолданатын кодының мөлшерін ескере отырып, аралас CASE бар PEP 8 нұсқасы аяқталуы мүмкін. PEP 8-тен біршама өзгеше ауытқулар бар, бұл өте таралған.

29
02 окт. Жауап Thomas Wouters 02 Oct 2008-10-02 00:12 '08 сағат 12:12 2008-10-02 00:12

Python коды бойынша Style Guide мүмкіндік беретін,

Python кітапханасын атайтын конвенциялар біраз әбігерленбей, сондықтан біз оны ешқашан толықтай келіспейміз

Бұл стандартты Python кітапханасына ғана қатысты екенін ескеріңіз. Егер олар оны концертте ала алмаса, онда барлық Python коды үшін ортақ конгрестің болуына үлкен үміт бар ма?

Осыдан және талқылаудан бастап, мысалы, егер сіз оны жалғастыра берсеңіз, бұл қорқынышты күнә емес деген қорытындыға келеді. Python-ге ауысқан кезде айнымалылар мен функцияларға арналған Java немесе C # (анық және жақсы құрылған) конвенцияларды атаңыз. Әрине, кодтық база / жоба / команда үшін кез-келген басымдық стилімен ұстану жақсы. Python стилінің нұсқаулығында айтылғандай, ішкі үйлесімділік маңызды.

Мені еретик ретінде қабылдамаңыз :-) ОП сияқты, мен «Pythonista» емеспін, бәрібір.

29
25 апр. Жауап Jonik 25 сәу 2010-04-25 14:23 '10 в 14:23 2010-04-25 14:23

Жоғарыда айтылғандай, PEP 8 айнымалылар, әдістер және функциялар үшін lower_case_with_underscores пайдалануды ұсынады.

Мен айнымалыларға арналған lower_case_with_underscores және әдістер мен функциялар үшін mixedCase пайдалануды, кодты анық және оқылатын етуді пайдаланғым келеді. Осылайша, Python-дің Zen-інен кейін , «анық» қарағанда «айқын» және «Readability count»

25
05 нояб. Жауап 05 ноября. 2008-11-05 05:51 '08 5:51 2008-11-05 05:51

Көптеген python пайдаланушылары астыңғы сызықтарды ұнатады, бірақ мен оларды 5 жылдан артық ұнатпағанмен, мен де питонды пайдаланып жүрмін. Олар маған қарапайым көрінеді, бірақ, мүмкін, менің барлық Java.

Мен CamelCase-ді жақсы көремін, себебі сабақтар деп аталатын сабақтарға қолайлы. SomeClass.doSomething() деген SomeClass.doSomething() салыстырғанда логикалық болуы мүмкін. Егер сіз питондағы жаһандық модульдік индекске қарасаңыз, бұл әртүрлі дереккөздерден алынған кітапханалардың жиынтығы болғандықтан, сонымен қатар, күн сияқты қатаң ережелермен бір компания әзірлеген нәрсені емес, кодтау, төменгі жолды айтатынмын: кез келген нәрсені қолданғыңыз келсе, бұл жай ғана жеке дәм.

13
02 окт. жауап берілді André 02 oct. 2008-10-02 00:16 '08 at 12:16 PM 2008-10-02 00:16

Жеке түрде, CamelCase-ты mixedCase сыныптарына, әдістеріне және функцияларына пайдалануға тырысамын. Айнымалылар әдетте бөлінеді (есімде болса). Осылайша, бірден көрінетін барлық нәрсені емес, мен айтқанымды дереу айта аламын.

13
02 окт. жауап crystalattice 02 Oct 2008-10-02 06:24 '08 сағат 6: 00-де 2008-10-02 06:24

Әдетте, стандартты тілдер кітапханасында қолданылатын контентті ұстаныңыз.

2
02 окт. жауап 02 ақпан күні yfeldblum беріледі . 2008-10-02 06:55 '08 сағат 06:55 2008-10-02 06:55

Бұл туралы мақала бар: http://www.cs.kent.edu/~jmaletic/papers/ICPC2010-CamelCaseUnderScoreClouds.pdf

Егер оқуға лента болсаңыз, онда snack_case түйеКазадан гөрі оқылатын болады дейді. Сондықтан қазіргі заманғы тілдер қайда болса да, жыланның пайдаланады (немесе қолдануы тиіс).

2
09 мая '16 в 19:20 2016-05-09 19:20 жауап alebian 09 мамыр '19:20 19:20 2016-05-09 19:20

Кодтау стилі әдетте ұйымның ішкі саясатының / конвенцияларының бөлігі болып табылады, бірақ менің ойымша, жалпы айтқанда, all_lower_case_underscore_separator стилі (snake_case деп те аталады) python-да жиі кездеседі.

2
02 окт. жауап берілді 02 oct . 2008-10-02 00:08 '08 сағат 00:08 2008-10-02 00:08