Python’da tanımlayıcılar (örneğin değişken adları) için geçerli ve geçersiz adlar ve adlandırma kuralları

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

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.

Copied title and URL