Sa Python, ang mga identifier (pangalan ng mga variable, function, klase, atbp.) ay kailangang tukuyin ayon sa mga panuntunan. Ang mga pangalan na hindi sumusunod sa mga panuntunan ay hindi maaaring gamitin bilang mga identifier at magreresulta sa isang error.
Ang sumusunod na impormasyon ay ibinigay dito.
- Mga character na maaari at hindi magagamit sa mga identifier (pangalan)
- Mga character na ASCII
- Unicode na character
- normalisasyon (hal. sa matematika)
- Suriin kung ang string ay isang wastong identifier:
isidentifier()
- Mga salitang hindi maaaring gamitin bilang mga identifier (pangalan) (nakareserbang mga salita)
- Mga salitang hindi dapat gamitin bilang mga identifier (pangalan)
- Pagpangalan ng mga kumbensyon para sa PEP8
Ang sumusunod na paglalarawan ay ibinigay sa Python 3, at maaaring iba sa Python 2.
- Mga character na maaari at hindi magagamit sa mga identifier (pangalan)
- Suriin kung ang string ay isang wastong identifier: identifier()
- Mga salitang hindi maaaring gamitin bilang mga identifier (pangalan) (nakareserbang mga salita)
- Mga salitang hindi dapat gamitin bilang mga identifier (pangalan)
- Pagpangalan ng mga kumbensyon para sa PEP8
Mga character na maaari at hindi magagamit sa mga identifier (pangalan)
Nagsasaad ng mga character na maaari at hindi maaaring gamitin bilang mga identifier (pangalan).
Bilang karagdagan, bagama’t maraming bagay ang isusulat, karaniwang kailangan mong tandaan ay ang mga sumusunod.
- Gumamit ng malaki at maliit na titik, numero, at salungguhit.
- Ang unang (unang) titik ay hindi maaaring numero.
Mga character na ASCII
Ang mga character na ASCII na maaaring gamitin bilang mga identifier (pangalan) ay mga uppercase at lowercase na alphabets (A~Z,a~z), mga numero (0~9), at underscore (_). Ang alpabeto ay case-sensitive.
AbcDef_123 = 100
print(AbcDef_123)
# 100
Ang mga simbolo maliban sa mga salungguhit ay hindi maaaring gamitin.
# AbcDef-123 = 100
# SyntaxError: can't assign to operator
Gayundin, ang mga numero ay hindi maaaring gamitin sa simula (unang titik).
# 1_abc = 100
# SyntaxError: invalid token
Magagamit din ang mga underscore sa simula.
_abc = 100
print(_abc)
# 100
Gayunpaman, tandaan na ang isang underscore sa simula ay maaaring magkaroon ng isang espesyal na kahulugan.
Unicode na character
Mula sa Python 3, ang mga character na Unicode ay maaari ding gamitin.
変数1 = 100
print(変数1)
# 100
Hindi lahat ng Unicode na character ay maaaring gamitin, at depende sa kategorya ng Unicode, ang ilan ay hindi magagamit. Halimbawa, hindi maaaring gamitin ang mga simbolo tulad ng mga bantas at pictogram.
# 変数。 = 100
# SyntaxError: invalid character in identifier
# ☺ = 100
# SyntaxError: invalid character in identifier
Tingnan ang opisyal na dokumentasyon para sa mga code ng kategorya ng Unicode na maaaring gamitin.
Sa maraming mga kaso, walang bentahe sa paggamit ng mga character na Tsino, atbp., dahil lamang sa mga character na Unicode ay maaari ding gamitin (nang walang error).
normalisasyon (hal. sa matematika)
Ang mga character na Unicode ay kino-convert sa normalized na form na NFKC para sa interpretasyon. Halimbawa, ang mga full-width na alpabeto ay kino-convert sa kalahating lapad na mga alpabeto (mga ASCII na character).
Tandaan na kahit na ang source code ay nagpapakita ng ibang display, ito ay itinuturing na parehong bagay at ito ay ma-overwrite.
ABC = 100
ABC = -100
print(ABC)
# -100
print(ABC)
# -100
print(ABC is ABC)
# True
Suriin kung ang string ay isang wastong identifier: identifier()
Kung valid o hindi ang isang string bilang isang identifier ay maaaring suriin gamit ang string method na identifier().
Nagbabalik ito ng true kung ito ay wasto bilang isang identifier, at false kung ito ay hindi wasto.
print('AbcDef_123'.isidentifier())
# True
print('AbcDef-123'.isidentifier())
# False
print('変数1'.isidentifier())
# True
print('☺'.isidentifier())
# False
Mga salitang hindi maaaring gamitin bilang mga identifier (pangalan) (nakareserbang mga salita)
Mayroong ilang mga salita (mga reserbang salita) na hindi maaaring gamitin bilang mga identifier kahit na ang mga ito ay wastong mga string bilang mga identifier (pangalan).
Dahil ang isang nakareserbang salita ay isang wastong string bilang isang identifier, ang identifier() ay nagbabalik ng true, ngunit ang isang error ay nangyayari kung ito ay ginagamit bilang isang identifier.
print('None'.isidentifier())
# True
# None = 100
# SyntaxError: can't assign to keyword
Upang makakuha ng isang listahan ng mga nakalaan na salita at upang suriin kung ang isang string ay isang nakalaan na salita, gamitin ang keyword module ng karaniwang library.
Mga salitang hindi dapat gamitin bilang mga identifier (pangalan)
Ang mga pangalan ng mga built-in na function ng Python, halimbawa, ay maaaring gamitin bilang mga identifier, kaya maaari kang magtalaga ng mga bagong value sa kanila bilang mga variable.
Halimbawa, ang len() ay isang built-in na function na ibinabalik ang bilang ng mga elemento sa isang listahan o ang bilang ng mga character sa isang string.
print(len)
# <built-in function len>
print(len('abc'))
# 3
Kung magtatalaga ka ng bagong halaga sa pangalang ito len, ang orihinal na function ay mapapatungan at magiging hindi magagamit. Tandaan na walang error o babala ang ipi-print kapag nagtatalaga ng bagong halaga.
print(len('abc'))
# 3
len = 100
print(len)
# 100
# print(len('abc'))
# TypeError: 'int' object is not callable
Ang isa pang karaniwang pagkakamali ay ang paggamit ng list = [0, 1, 2], na ginagawang imposibleng gamitin ang list(). Mag-ingat ka.
Pagpangalan ng mga kumbensyon para sa PEP8
Ang PEP ay kumakatawan sa Python Enhancement Proposal, isang dokumento na naglalarawan ng mga bagong feature at iba pang aspeto ng 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
Ang PEP8 ay ang ikawalo, at inilalarawan nito ang “Style Guide for Python Code”, iyon ay, ang style guide para sa Python.
Binanggit din ang mga kombensiyon sa pagbibigay ng pangalan.
Tingnan ang link sa itaas para sa higit pang mga detalye, ngunit halimbawa, ang sumusunod na istilo ng pagsulat ay inirerekomenda.
- Module
lowercase_underscore
- Lowercase + underscore
- Package
lowercase
- lahat ng maliliit na titik
- Mga Klase, Exceptions
CapitalizedWords
(CamelCase
)- I-capitalize ang unang titik ng isang salita, walang underscore
- Mga function, variable, at pamamaraan
lowercase_underscore
- Lowercase + underscore
- palagiang
ALL_CAPS
- Malaking titik + salungguhit
Gayunpaman, kung ang iyong organisasyon ay walang sariling mga kombensyon sa pagbibigay ng pangalan, inirerekumenda na sundin ang PEP8.