Python’da tanımlayıcıların (değişken isimleri, fonksiyonlar, sınıflar vb.) kurallara göre tanımlanması gerekir. Kurallara uymayan isimler tanımlayıcı olarak kullanılamaz ve hataya neden olur.
Aşağıdaki bilgiler burada verilmiştir.
- Tanımlayıcılarda (isimlerde) kullanılabilen ve kullanılamayan karakterler
- ASCII karakterleri
- Unicode karakter
- normalleştirme (örneğin matematikte)
- Dizenin geçerli bir tanımlayıcı olup olmadığını kontrol edin:
isidentifier()
- Tanımlayıcı olarak kullanılamayan kelimeler (isimler) (ayrılmış kelimeler)
- Tanımlayıcı olarak kullanılmaması gereken kelimeler (isimler)
- PEP8 için adlandırma kuralları
Aşağıdaki açıklama Python 3’te verilmiştir ve Python 2’de farklı olabilir.
- Tanımlayıcılarda (isimlerde) kullanılabilen ve kullanılamayan karakterler
- Dizenin geçerli bir tanımlayıcı olup olmadığını kontrol edin: isidentifier()
- Tanımlayıcı olarak kullanılamayan kelimeler (isimler) (ayrılmış kelimeler)
- Tanımlayıcı olarak kullanılmaması gereken kelimeler (isimler)
- PEP8 için adlandırma kuralları
Tanımlayıcılarda (isimlerde) kullanılabilen ve kullanılamayan karakterler
Tanımlayıcı (ad) olarak kullanılabilen ve kullanılamayan karakterleri belirtir.
Ayrıca hakkında yazılacak çok şey olsa da temelde hatırlamanız gereken tek şey şudur.
- Büyük ve küçük harf, sayı ve alt çizgi kullanın.
- İlk (ilk) harf sayı olamaz.
ASCII karakterleri
Tanımlayıcılar (adlar) olarak kullanılabilen ASCII karakterleri, büyük ve küçük harfler (A~Z,a~z), sayılar (0~9) ve alt çizgilerdir (_). Alfabe büyük/küçük harfe duyarlıdır.
AbcDef_123 = 100
print(AbcDef_123)
# 100
Alt çizgi dışındaki simgeler kullanılamaz.
# AbcDef-123 = 100
# SyntaxError: can't assign to operator
Ayrıca başlangıçta (ilk harf) sayılar kullanılamaz.
# 1_abc = 100
# SyntaxError: invalid token
Alt çizgi de başlangıçta kullanılabilir.
_abc = 100
print(_abc)
# 100
Ancak, başlangıçtaki alt çizginin özel bir anlamı olabileceğini unutmayın.
Unicode karakter
Python 3’ten itibaren Unicode karakterler de kullanılabilir.
変数1 = 100
print(変数1)
# 100
Tüm Unicode karakterleri kullanılamaz ve Unicode kategorisine bağlı olarak bazıları kullanılamaz. Örneğin noktalama işaretleri ve piktogramlar gibi simgeler kullanılamaz.
# 変数。 = 100
# SyntaxError: invalid character in identifier
# ☺ = 100
# SyntaxError: invalid character in identifier
Kullanılabilecek Unicode kategori kodları için resmi belgelere bakın.
Çoğu durumda, Unicode karakterler de (hatasız) kullanılabildiğinden, Çince karakterler vb. kullanmanın hiçbir avantajı yoktur.
normalleştirme (örneğin matematikte)
Unicode karakterler, yorumlama için normalleştirilmiş NFKC biçimine dönüştürülür. Örneğin, tam genişlikli alfabeler, yarı genişlikli alfabelere (ASCII karakterleri) dönüştürülür.
Kaynak kodu farklı bir görüntü gösterse bile, aynı nesne olarak kabul edildiğini ve üzerine yazılacağını unutmayın.
ABC = 100
ABC = -100
print(ABC)
# -100
print(ABC)
# -100
print(ABC is ABC)
# True
Dizenin geçerli bir tanımlayıcı olup olmadığını kontrol edin: isidentifier()
Bir dizenin tanımlayıcı olarak geçerli olup olmadığı, isidentifier() dize yöntemiyle kontrol edilebilir.
Tanımlayıcı olarak geçerliyse true, geçersizse false döndürür.
print('AbcDef_123'.isidentifier())
# True
print('AbcDef-123'.isidentifier())
# False
print('変数1'.isidentifier())
# True
print('☺'.isidentifier())
# False
Tanımlayıcı olarak kullanılamayan kelimeler (isimler) (ayrılmış kelimeler)
Tanımlayıcı (ad) olarak geçerli dizeler olsalar bile tanımlayıcı olarak kullanılamayan bazı sözcükler (ayrılmış sözcükler) vardır.
Ayrılmış bir sözcük, tanımlayıcı olarak geçerli bir dize olduğundan, isidentifier() işlevi true değerini döndürür, ancak tanımlayıcı olarak kullanılırsa bir hata oluşur.
print('None'.isidentifier())
# True
# None = 100
# SyntaxError: can't assign to keyword
Ayrılmış sözcüklerin bir listesini almak ve bir dizgenin ayrılmış bir sözcük olup olmadığını kontrol etmek için standart kitaplığın anahtar sözcük modülünü kullanın.
Tanımlayıcı olarak kullanılmaması gereken kelimeler (isimler)
Örneğin Python’un yerleşik işlevlerinin adları tanımlayıcı olarak kullanılabilir, böylece bunlara değişkenler olarak yeni değerler atayabilirsiniz.
Örneğin, len(), bir listedeki öğelerin sayısını veya bir dizedeki karakter sayısını döndüren yerleşik bir işlevdir.
print(len)
# <built-in function len>
print(len('abc'))
# 3
Bu len adına yeni bir değer atarsanız, orijinal işlevin üzerine yazılır ve kullanılamaz hale gelir. Yeni bir değer atanırken hiçbir hata veya uyarı yazdırılmayacağını unutmayın.
print(len('abc'))
# 3
len = 100
print(len)
# 100
# print(len('abc'))
# TypeError: 'int' object is not callable
Diğer bir yaygın hata ise list = [0, 1, 2] kullanmaktır, bu da list() kullanımını imkansız hale getirir. Dikkat olmak.
PEP8 için adlandırma kuralları
PEP, Python’un yeni özelliklerini ve diğer yönlerini açıklayan bir belge olan Python Geliştirme Önerisi anlamına gelir.
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 sekizincidir ve “Python Kodu için Stil Kılavuzu”nu, yani Python için stil kılavuzunu açıklar.
Adlandırma kurallarından da bahsedilmiştir.
Daha fazla ayrıntı için yukarıdaki bağlantıya bakın, ancak örneğin aşağıdaki yazı stili önerilir.
- Modül
lowercase_underscore
- Küçük harf + alt çizgi
- paket
lowercase
- tüm küçük harfler
- Sınıflar, İstisnalar
CapitalizedWords
(CamelCase
)- Bir kelimenin ilk harfini büyük yaz, alt çizgi yok
- Fonksiyonlar, değişkenler ve yöntemler
lowercase_underscore
- Küçük harf + alt çizgi
- devamlı
ALL_CAPS
- Büyük harfler + alt çizgi
Ancak, kuruluşunuzun kendi adlandırma kuralları yoksa, PEP8’i izlemeniz önerilir.