Python kısaca güzellikten başka bir şey değildir. Mesela tek bir satır, çabucak yazacağınız kod ile her türlü veri tipinde elemanlar tutabilecek liste tipinde bir değişken tanımlayabileceğiniz fazla programlama dili yoktur. İşte, bir satır Python kodu:
a = []Bu kadar. Hoş değil mi? Boşlukları saymazsak dört karakterden oluşan tek bir satır kod. Liste veri tipi doğrudan dilin içine gömülmüş durumda. Listeye bir tamsayı eklemek mi istiyorsunuz? İşte burada:
a.append(10)Karakter katarı (string) eklemek?
a.append('python is great')Ekrana yazdırmak mı istiyorsunuz? O da kolay:
print aekran çıktısı ....
[10, 'python is great']Evet nasıl? Şimdi kendi tanımladığınız bir sınıfın örneğini yaratmak isteyebilirsiniz? Emin olun bunuda yapabilirsiniz. Tabii ki bunun için biraz daha gerçek programlamaya geçmemiz gerekiyor. MyClass isminde bir sınıf tanımlayalım. İşte örneğin tam kodu:
class MyClass: def __init__(self, name, height): self.name = name self.height = height def __str__(self): return "%s=%s"%(self.name, self.height) a = [] a.append(10) a.append('python is great') a.append(MyClass('Sam', 80)) for item in a: print itemBu kod ile önce MyClass adında bir sınıf oluşturdum. Sonrasında, sınıf içinde iki tane üye fonksiyon oluşturdum. Tanımladığım bu iki fonksiyon özel fonksiyon denilen fonksiyonlardır; ilki bir sınıf yapılandırıcısı (constructor), ikincisi ise sınıfın karakter olarak yapısını döndüren bir fonksiyondur. Özel fonksiyonlar isimlerinin başına ve sonuna iki alt çizgi karakteri alırlar. Kendi fonksiyonlarım için alt çizgi karakterlerini kullanmıyorum.
Doğrudur, Python bazen birazcık garip gelebilir. Mesela, Python sıkı bir şekilde girintilemeye (indentation) dayalıdır ve bu bazılarını rahatsız edebilir. Katılırsınız ya da katılmazsınız, ama basitliğini görebilirsiniz.
İşte bir başka gariplik: Her metodun ilk parametresi nesnenin kendisine bir referansdır. (C++ içinde aynı şey geçerlidir fakat parametre gömülüdür, siz ayrıca kodlamazsınız. Python için kendiniz ayrıca kodlamanız gerekir.)
__str__ fonksiyonunda karakter katarını oluştururken kullandığım ilginç yönteme dikkat edin: Tırnaklar içine her bir eleman için yer tutucu olarak %s karakterlerinin kullanıldığı bir dizi yerleştirdim. Tırnağı kapattıktan sonra bir "%" koydum ve yertutucuların sırası ile yerini alacak olan değişkenleri virgülle ayırarak yerleştirdim. Hoş değil mi?
Yukarıdaki örnek kodda, sınıfı oluşturduktan sonra, bir liste tipinde değişken oluşturdum, listeye bir tamsayı, bir string ve son olarak MyClass isimli sınıfımın bir örneğini ekledim. Ardından liste üzerinde ilerleyen bir döngü oluşturdum ve her bir elemanı ekrana yazdırdım. İşte ekran çıktısı:
10 python is great Sam=80Evet, bu 30 saniyelik hızlı bir Python tanıtımıydı. Fakat asıl amacımız neydi? Python'un favori programlama dilim olmasının yanında, favori birde platformum var: Microsoft .NET
Evet kabul ediyorum. Python'un açık kaynak diline bayılıyorum ama aynı zamanda .NET'i de seviyorum. İlginç olan nedir biliyor musunuz? Python'un .NET'i doğal olarak kullanan bir implementasyonu var. Adı IronPython, indirmek için www.microsoft.com/downloads adresine uğrayın ve arama kutusuna IronPython yazın.
Bu yazı yazıldığı sırada IronPython hala beta aşamasındaydı. Bu yüzden direkt link vermek yerine Microsoft'un download sitesinin adresini verdim.
Ç.N.: IronPython bugün itibari ile 1.0.1 versiyonuna ulaşmış durumda. Codeplex sitesinde barınan projenin ana sayfası burada.
Toplam 5 yazıdan oluşan bu makalenin devam bölümleri de en kısa zamanda burada yerini alacak.
Çeviri: Zekeriya KOÇ
Reprinted from DevSource.com, a Ziff Davis Media property, all rights reserved, Ziff Davis Media, 28 East 28th St., New York, NY, USA