Java -> Python?

oy
28

Java tersi var ve yok Python dilinin önemli özelliklerinden bazılarının ne Python (ve sözdizimi) dinamik doğası, dışında mı?

Oluştur 08/09/2008 saat 15:36
kaynak kullanıcı
Diğer dillerde...                            


5 cevaplar

oy
16

Philip J. Eby tarafından makalelerin bu çifti (çoğunlukla Felsefe / zihniyet ziyade özel dil özellikleri hakkında) iki dil arasındaki farkları tartışıyor işini iyi yapıyor düşünüyorum.

Cevap 08/09/2008 saat 15:40
kaynak kullanıcı

oy
5

Python Bir anahtar fark önemli boşluk . Uzun süre de beni - - Bu birçok insan kapalı koyar ama gitmem kez doğal görünüyor ve çok daha fazla mantıklı ;her yerde bu.

kişisel bir perspektiften bakıldığında, Python Java üzerinde şu avantajları vardır:

Bunların dışında, Python Wiki bu sayfayı ilginç makalelerin bağlantı sürü bakmak için iyi bir yerdir.

Cevap 08/09/2008 saat 15:43
kaynak kullanıcı

oy
3

Ile Jython her ikisine de sahip olabilir. Java çalışma zamanı erişimi olan gömülü bir tercümana ihtiyaç olmadığı henüz çok kullanışlı sadece Python 2.2 var, ama.

Cevap 08/09/2008 saat 16:13
kaynak kullanıcı

oy
46

  1. Liste comprehensions. Sık sık kendim / filtreleme haritalama listeleri ve söylemek mümkün olan bulmak [line.replace("spam","eggs") for line in open("somefile.txt") if line.startswith("nee")]gerçekten güzel.

  2. Fonksiyonlar birinci sınıf nesnelerdir. Onlar diğer işlevi içinde tanımlanan diğer fonksiyonlara parametre olarak geçti ve sözcük kapsamına sahip olabilir. Bu gerçekten kolay gibi şeyler söylemek kılan people.sort(key=lambda p: p.age)özel bir karşılaştırıcı sınıf veya eşit ayrıntılı bir şeyi tanımlamak zorunda kalmadan yaşlarına insanların bir demet sıralamak böylece ve.

  3. Her şey bir nesnedir. Java standart kütüphanesindeki birçok sınıfları (kısa, boolean, byte, char çift, şamandıra, int, uzun, Nesne için) fonksiyonlarının 9 farklı versiyonlarını tanımlamak neden olan, nesnelerin değil temel türü vardır. Array.sortiyi bir örnektir. Şey boş olarak çıkıyor zaman işler garip kılan rağmen autoboxing, yardımcı olur.

  4. Özellikleri. Python 'null onlar 0 ya da asla emin olmak için salt okunur alanlar, tembel oluşturulan alanlar yanı sıra atama üzerine kontrol edilir alanları ile sınıfları oluşturmak veya vb, karşı korumak için istediğini sağlar

  5. Standart ve anahtar kelime argümanlar. Eğer 5 isteğe bağlı argümanlar kadar sürebilir bir yapıcısı istiyorsanız Java'da, o yapıcı 6 farklı versiyonlarını tanımlamalıdır. Ve hiçbir şekilde söylemek hiç oradaStudent(name="Eli", age=25)

  6. Fonksiyonlar sadece 1 şey dönebilirsiniz. Diyebilirsiniz böylece Python size, tuple görevim var spam, eggs = nee()ama Java parametreleri dışında değişken veya 2 alanlar ile özel bir sınıf var ve daha sonra bu alanları elde etmek kod iki ek hatları başvurmak ya gerekiyordu.

  7. Dahili listeler ve sözlükler için sözdizimi.

  8. Operatör aşırı yüklenmesi.

  9. Genellikle daha iyi kütüphaneleri tasarlanmış. Örneğin, Java bir XML belgesi ayrıştırmak için, söylemek
    Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("test.xml");
    ve Python diyorsunuz
    doc = parse("test.xml")

Neyse, daha fazla örneklerle ve gidebiliriz ama Python sadece genel çok daha esnek ve anlamlı bir dildir. Aynı zamanda dinamik hangi gerçekten gibi, daktilo, ancak bazı dezavantajları ile gelir oluyor.

Java Python çok daha iyi performansa sahiptir ve yolu daha iyi bir araç desteği vardır. Bazen böyle şeyler çok önemli ve Java bir görev için Python daha iyi dildir; Ben daha çok Python sevme rağmen bazı yeni projeler için Java kullanmaya devam edin. Ama bir dil olarak Python Kendimi başarmak gerek bulmak birçok şey için üstün olduğunu düşünüyorum.

Cevap 08/09/2008 saat 16:35
kaynak kullanıcı

oy
2

Apart Eli Courtwright söylediklerini:

  • Python içinde yineleyiciler daha özlü bulabilirsiniz. Sen kullanabilirsiniz şey i için ve hemen hemen her şeyi ile çalışır. Evet, Java 1.5 beri iyi almış, ancak örneğin sen aynı oluşumla piton bir dize yineleyebilirsiniz.
  • Içgözlem: python'da bir nesne ya da sembolleri, yöntemleri hakkında bir modül, hatta onun Docstringler hakkında çalışma zamanı bilgilere alabilirsiniz. Ayrıca dinamik bunları örneğini. Java bu bazılarına sahiptir, ancak Python yaklaşık 3 satır ise genellikle Java o, bir sınıfın bir örneğini almak için kod Yarım sayfa sürer. Ve bildiğim kadarıyla Docstringler şey Java kullanılamaz
Cevap 09/09/2008 saat 11:11
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more