Değişken İsimlendirme Kuralları

Diğer programlama dillerinde olduğu gibi Python’da da değişken isimlendirme ile ilgili uyulması gereken çeşitli kurallar vardır.

1️⃣ Değişken isimleri rakamla başlayamaz, alfabetik karakterlerle başlatılmalıdır. İlk karakter dışında diğer karakterler rakam olabilir. Alt tire, _, karakteri alfabetik karakter olarak sayılmaktadır.

1x = 4 # Hata, 1 ile başlayamaz
x1 = 4 # Uygun
(x = 4 # Hata, ( ile başlayamaz
_x = 4 # Uygun

2️⃣ Değişken isimleri anahtar sözcük olamaz. (Bknz: Token, Keyword, White Space, Statement ve Expression Kavramları)

while = 4 # Hata, while bir anahtar sözcüktür.

3️⃣ Değişken isimleri boşluk karakterlerini içeremez.

my variable = 4 # Hata

4️⃣ Değişken isimleri operatör karakterlerini içeremez.

my+variable = 4      # Hata
benim-degiskenim = 4 # Hata

5️⃣ Python case-sensitive bir dildir, küçük/büyük harf duyarlılığı vardır. C, C++, Java, C# da böyledir fakat Pascal, Basic, Fortran böyle değildir, onlara case-insensitive diyoruz.

>>> x = 4
>>> X
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'X' is not defined. Did you mean: 'x'?

Did you mean? de diyor!

6️⃣ Python 3 ile UNICODE desteği değişken isimlerine de gelmiştir. Türkçe karakter içeren değişkenler yaratabiliriz. Buradan böyle yapmalıyız anlamı çıkmasın elbette.. Ayrıca değişken isimlendirmede tüm UNICODE karakterler kullanılabilir anlamı da çıkmasın. [1]

benim_değişkenim = 4 # Uygun
😊 = "gülen yüz"     # 😊 değişken adı olamıyor, UNICODE full desteklenmiyor
değişken = "😊"      # Uygun

7️⃣ Python, Python Language Reference, değişkenlerin maksimum uzunluğu konusunda bir şey söylememektedir. Burada genelde ilgili Python implementasyonunu yazan kişilerin, CPython, PyPy gibi belirlediği içsel bir limit olacaktır. Örneğin değişken isimlerin ilk N karakteri dikkate alınıyor olabilir. Ama pratikte buralara takılmamamız lazım. Bu kadar uzun karakterli değişken isimleri kullanmıyor olmalıyız. Tipik olarak 256 karakter uzunluğa kadar isimler sorunsuzca desteklenecektir ama böyle uzun isimler kullanmamalıyız.

Naming Conventions, Coding Conventions, İsimlendirme/Kodlama Stilleri

Değişken isimlendirmede boşluk karakterlerini kullanamıyoruz. Kod okunabilirliğini aynı projelerde çalışan geliştiriciler arasında da arttırmak için programlama dünyasında süregelen çeşitli isimlendirme kuralları vardır. Bu kurallar dilin doğru çalışması için gerekli değildir. Daha çok kodların rahat okunması için vardır. Her dilin sahiplendiği ve genel geçer doğru kabul ettiği tarzlar, dilden dile değişebilir.

Snake Case 🐍

Klasik C tarzı da denmektedir. C, Python, Rust, SQL gibi dillerde kullanımı yaygındır. Sözcüklerin arasında _ konur.

benim_degiskenim
file_name
user_intput_data
MAX_CONNECTIONS

gibi..

Kebab Case 🌯

Snake Case’e benzer. İsimler arasında _ yerine - kullanılır. Python’da değişken isimlerinde - bulunamadığı için kullanılamaz. Fakat programlama dünyasında CSS ve JavaScript framework’lerinde tercih edilebilmektedir.

Camel Case 🐫

Burada ilk sözcüğün tamamı küçük harf yazılır. Sonraki sözcüklerin ilk harfi büyük, devamı küçük yazılır. Sözcükler arasında boşluk bırakılmaz. Bu tarza lowerCamelCase de denmektedir.

benimDeğişkenim
fileName
userInputData

gibi. Java’da sık tercih edilir.

Pascal Case

Camel Case’e benzer. Farkı, ilk harfin de büyük harf olmasıdır. Bazen UpperCamelCase de denmektedir.

BenimDeğişkenim
FileName
UserInputData

gibi.

Hangisini kullanalım?

Python’da C tarzı isimlendirme yani snake case sıklıkla tercih edilir. Python case sensitive bir dil olsa da genelde küçük harf kullanılır. Sembolik sabit görevindeki değişkenler, yani C’deki #define ile tanımlanan makrolarla aynı amacı taşıyanlar, genelde BÜYÜK HARF ile yazılır. Sınıf isimlendirmelerinde PascalTarzı da tercih edilebilmektedir.

Google Python Style Guide, snake_case önermektedir. [2] [3] Ama örneğin Python’da QT ile çalışıyorsak o kütüphane Camel Casting tercih ettiği için kendi kodumuzu da ona uydurmamız mantıklı olabilir.

Değişken isimlendirmelerinde Türkçe karakter kullanabilsek de genelde önerilen, diğer dillerde de, değişken isimlerinin İngilizce isimlendirilmesidir.


💭 Yorumlar

Yorum altyapısı giscus tarafından (evet tarafından!) sağlanmaktadır. Yorum yazabilmek için GitHub hesabınız üzerinden giriş yapmanız gerekmektedir. Yorumlar, Github Discussions üzerinde saklanmaktadır.

20417d4b-bc0a-4fc8-82ba-a878190d30c8