នៅក្នុង Python ការកំណត់អត្តសញ្ញាណ (ឈ្មោះអថេរ មុខងារ ថ្នាក់។ល។) ចាំបាច់ត្រូវកំណត់ដោយយោងទៅតាមច្បាប់។ ឈ្មោះដែលមិនគោរពតាមច្បាប់មិនអាចត្រូវបានប្រើជាគ្រឿងសម្គាល់ទេ ហើយនឹងមានកំហុស។
ព័ត៌មានខាងក្រោមត្រូវបានផ្តល់ជូននៅទីនេះ។
- តួអក្សរដែលអាច និងមិនអាចប្រើក្នុងការកំណត់អត្តសញ្ញាណ (ឈ្មោះ)
- តួអក្សរ ASCII
- តួអក្សរយូនីកូដ
- ការធ្វើឱ្យធម្មតា (ឧទាហរណ៍ក្នុងគណិតវិទ្យា)
- ពិនិត្យមើលថាតើខ្សែអក្សរគឺជាឧបករណ៍កំណត់អត្តសញ្ញាណត្រឹមត្រូវឬអត់៖
isidentifier()
- ពាក្យដែលមិនអាចប្រើជាកំណត់អត្តសញ្ញាណ (ឈ្មោះ) (ពាក្យបម្រុង)
- ពាក្យដែលមិនគួរប្រើជាអត្តសញ្ញាណ (ឈ្មោះ)
- ការដាក់ឈ្មោះអនុសញ្ញាសម្រាប់ PEP8
ការពិពណ៌នាខាងក្រោមត្រូវបានផ្តល់ឱ្យនៅក្នុង Python 3 ហើយអាចខុសគ្នានៅក្នុង Python 2 ។
តួអក្សរដែលអាច និងមិនអាចប្រើក្នុងការកំណត់អត្តសញ្ញាណ (ឈ្មោះ)
បង្ហាញតួអក្សរដែលអាច និងមិនអាចប្រើជាអត្តសញ្ញាណ (ឈ្មោះ)។
លើសពីនេះទៀត ទោះបីជាមានរឿងជាច្រើនដែលត្រូវសរសេរក៏ដោយ ជាមូលដ្ឋានទាំងអស់ដែលអ្នកត្រូវចងចាំគឺដូចខាងក្រោម។
- ប្រើអក្សរធំ និងអក្សរតូច លេខ និងសញ្ញាគូសក្រោម។
- អក្សរទីមួយ (ទីមួយ) មិនអាចជាលេខបានទេ។
តួអក្សរ ASCII
តួអក្សរ ASCII ដែលអាចប្រើជាអត្តសញ្ញាណ (ឈ្មោះ) គឺជាអក្សរធំ និងអក្សរតូច (A~Z,a~z) លេខ (0~9) និងសញ្ញាគូសក្រោម (_)។ អក្ខរក្រមគឺប្រកាន់អក្សរតូចធំ។
AbcDef_123 = 100
print(AbcDef_123)
# 100
និមិត្តសញ្ញាផ្សេងក្រៅពីសញ្ញាគូសក្រោមមិនអាចប្រើបានទេ។
# AbcDef-123 = 100
# SyntaxError: can't assign to operator
ដូចគ្នានេះផងដែរ លេខមិនអាចត្រូវបានប្រើនៅខាងដើមឡើយ (អក្សរទីមួយ)។
# 1_abc = 100
# SyntaxError: invalid token
សញ្ញាគូសក្រោមក៏អាចត្រូវបានប្រើនៅដើម។
_abc = 100
print(_abc)
# 100
ទោះជាយ៉ាងណាក៏ដោយ សូមចំណាំថាសញ្ញាគូសនៅខាងដើមអាចមានអត្ថន័យពិសេស។
តួអក្សរយូនីកូដ
ចាប់តាំងពី Python 3 អក្សរយូនីកូដក៏អាចប្រើបានដែរ។
変数1 = 100
print(変数1)
# 100
មិនមែនអក្សរយូនីកូដទាំងអស់អាចប្រើបានទេ ហើយអាស្រ័យលើប្រភេទយូនីកូដ ខ្លះមិនអាចប្រើបានទេ។ ជាឧទាហរណ៍ និមិត្តសញ្ញាដូចជាសញ្ញាវណ្ណយុត្តិ និងរូបសញ្ញាមិនអាចប្រើបានទេ។
# 変数。 = 100
# SyntaxError: invalid character in identifier
# ☺ = 100
# SyntaxError: invalid character in identifier
សូមមើលឯកសារផ្លូវការសម្រាប់លេខកូដប្រភេទយូនីកូដដែលអាចប្រើបាន។
ក្នុងករណីជាច្រើន វាគ្មានប្រយោជន៍អ្វីឡើយក្នុងការប្រើអក្សរចិន។
ការធ្វើឱ្យធម្មតា (ឧទាហរណ៍ក្នុងគណិតវិទ្យា)
តួអក្សរយូនីកូដត្រូវបានបំប្លែងទៅជាទម្រង់ធម្មតា NFKC សម្រាប់ការបកស្រាយ។ ឧទាហរណ៍ អក្ខរក្រមទទឹងពេញត្រូវបានបំប្លែងទៅជាអក្ខរក្រមពាក់កណ្តាលទទឹង (តួអក្សរ ASCII)។
សូមចំណាំថា ទោះបីជាកូដប្រភពបង្ហាញការបង្ហាញផ្សេងគ្នាក៏ដោយ វាត្រូវបានចាត់ទុកថាជាវត្ថុដូចគ្នា ហើយនឹងត្រូវបានសរសេរជាន់ពីលើ។
ABC = 100
ABC = -100
print(ABC)
# -100
print(ABC)
# -100
print(ABC is ABC)
# True
ពិនិត្យមើលថាតើខ្សែអក្សរគឺជាឧបករណ៍កំណត់អត្តសញ្ញាណត្រឹមត្រូវ៖ isidentifier()
ថាតើខ្សែអក្សរមានសុពលភាពឬអត់ ក្នុងនាមជាអ្នកកំណត់អត្តសញ្ញាណអាចត្រូវបានពិនិត្យដោយប្រើ string method isidentifier()។
វាត្រឡប់ពិតប្រសិនបើវាមានសុពលភាពជាឧបករណ៍កំណត់អត្តសញ្ញាណ ហើយមិនពិតប្រសិនបើវាមិនត្រឹមត្រូវ។
print('AbcDef_123'.isidentifier())
# True
print('AbcDef-123'.isidentifier())
# False
print('変数1'.isidentifier())
# True
print('☺'.isidentifier())
# False
ពាក្យដែលមិនអាចប្រើជាកំណត់អត្តសញ្ញាណ (ឈ្មោះ) (ពាក្យបម្រុង)
មានពាក្យមួយចំនួន (ពាក្យដែលបានបម្រុងទុក) ដែលមិនអាចប្រើជាឧបករណ៍កំណត់អត្តសញ្ញាណបាន បើទោះបីជាពួកគេជាខ្សែអក្សរត្រឹមត្រូវជាអ្នកកំណត់អត្តសញ្ញាណ (ឈ្មោះ) ក៏ដោយ។
ដោយសារពាក្យដែលបានបម្រុងទុកគឺជាខ្សែអក្សរដែលមានសុពលភាពជាឧបករណ៍កំណត់អត្តសញ្ញាណ isidentifier() ត្រឡប់ពិត ប៉ុន្តែកំហុសកើតឡើងប្រសិនបើវាត្រូវបានប្រើជាឧបករណ៍កំណត់អត្តសញ្ញាណ។
print('None'.isidentifier())
# True
# None = 100
# SyntaxError: can't assign to keyword
ដើម្បីទទួលបានបញ្ជីពាក្យដែលបានបម្រុងទុក និងពិនិត្យមើលថាតើខ្សែអក្សរគឺជាពាក្យដែលបានបម្រុងទុក សូមប្រើម៉ូឌុលពាក្យគន្លឹះនៃបណ្ណាល័យស្តង់ដារ។
ពាក្យដែលមិនគួរប្រើជាអត្តសញ្ញាណ (ឈ្មោះ)
ឧទាហរណ៍ ឈ្មោះនៃមុខងារដែលភ្ជាប់មកជាមួយរបស់ Python អាចត្រូវបានប្រើជាអ្នកកំណត់អត្តសញ្ញាណ ដូច្នេះអ្នកអាចកំណត់តម្លៃថ្មីឱ្យពួកវាជាអថេរ។
ឧទាហរណ៍ len() គឺជាមុខងារដែលភ្ជាប់មកជាមួយ ដែលត្រឡប់ចំនួនធាតុនៅក្នុងបញ្ជី ឬចំនួនតួអក្សរក្នុងខ្សែអក្សរ។
print(len)
# <built-in function len>
print(len('abc'))
# 3
ប្រសិនបើអ្នកកំណត់តម្លៃថ្មីទៅ len ឈ្មោះនេះ មុខងារដើមនឹងត្រូវបានសរសេរជាន់ពីលើ ហើយមិនអាចប្រើបាន។ ចំណាំថាគ្មានកំហុស ឬការព្រមាននឹងត្រូវបានបោះពុម្ពនៅពេលកំណត់តម្លៃថ្មី។
print(len('abc'))
# 3
len = 100
print(len)
# 100
# print(len('abc'))
# TypeError: 'int' object is not callable
កំហុសទូទៅមួយទៀតគឺការប្រើ list = [0, 1, 2] ដែលធ្វើឱ្យវាមិនអាចប្រើ list()។ ត្រូវប្រុងប្រយ័ត្ន។
ការដាក់ឈ្មោះអនុសញ្ញាសម្រាប់ PEP8
PEP តំណាងឱ្យ Python Enhancement Proposal ដែលជាឯកសារដែលពិពណ៌នាអំពីលក្ខណៈពិសេសថ្មី និងទិដ្ឋភាពផ្សេងទៀតនៃ Python ។
PEP stands for Python Enhancement Proposal. A PEP is a design document providing information to the Python community, or describing a new feature for Python or its processes or environment.
PEP 1 — PEP Purpose and Guidelines | Python.org
PEP8 គឺជាលេខទីប្រាំបី ហើយវាពិពណ៌នាអំពី “ការណែនាំអំពីរចនាប័ទ្មសម្រាប់កូដ Python” ពោលគឺការណែនាំអំពីរចនាប័ទ្មសម្រាប់ Python ។
អនុសញ្ញាដាក់ឈ្មោះក៏ត្រូវបានលើកឡើងផងដែរ។
សូមមើលតំណខាងលើសម្រាប់ព័ត៌មានលម្អិត ប៉ុន្តែឧទាហរណ៍ រចនាប័ទ្មសរសេរខាងក្រោមត្រូវបានណែនាំ។
- ម៉ូឌុល
lowercase_underscore
- អក្សរតូច + អក្សរក្រោម
- កញ្ចប់
lowercase
- អក្សរតូចទាំងអស់។
- ថ្នាក់, ករណីលើកលែង
CapitalizedWords
(CamelCase
)- សរសេរអក្សរធំនៃអក្សរទីមួយនៃពាក្យមួយ ដោយគ្មានសញ្ញាចុច
- មុខងារ អថេរ និងវិធីសាស្រ្ត
lowercase_underscore
- អក្សរតូច + អក្សរក្រោម
- ថេរ
ALL_CAPS
- អក្សរធំ + សញ្ញាចុច
ទោះជាយ៉ាងណាក៏ដោយ ប្រសិនបើស្ថាប័នរបស់អ្នកមិនមានអនុសញ្ញាដាក់ឈ្មោះផ្ទាល់ខ្លួនទេ វាត្រូវបានណែនាំឱ្យធ្វើតាម PEP8។