SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Miért vagyok Python rajongó? avagy kalandozások egy nyílt forrású programozási nyelvvel Szalai Ferenc – Web Service Bricks (szferi@wsbricks.com)
Mi az a Python?
 
 
Általános célú nyílt forrású objetum-orientált script/dinamikus nyelv
Milyen platformon érhető el?
Bármelyiken
és még sokan máok...
Legfontosabb tulajdonságok
0. Le a kapcsoszárójelekkel és pontosvesszőkkel! Indentálj rendesen!
for i in xrange(0,10):   if i % 2 == 0:   print 'baba'
1. Objetum orientált,  - majdnem minden objetum
'valami'.upper() print "".join(['a', 'b']) class Foo(Bar1, Bar2):   __init__(self, a):   self.a = a   bubu(self, b):   print 'bubu' + str(b)
2. Magas szintű dinamikus típusok
t = ('a', 2) l = ['a', 1, 2.2] d = {'a': 1, 2:'b'} [x*2 for x in l if x % 2] dict([('a', 2), ('b', 3)]) for k, v in d.items():   print k,v
3. Funcionális és procedurális programozási eszközök
3.1 Iterators és generátorok: class Channel:   def __iter__(self):   for m in self.messages:   yield Message.create(m) Lambda függvény: def make_incrementor (n): return lambda x: x + n f = make_incrementor(2) g = make_incrementor(6) print f(42), g(42) import functools
3.2. Dekorátorok
@login_required  @check_league @check_league_admin def add_season(request, league): ... class Foo(object):   @staticmethod   def bar(arg1):   ...
4. Introspection
import settings class SportStat(object):   def __init__(self, sport):   if sport in settings.AVAILABLE_SPORTS:   try:   sm = __import__(sport,   globals(),   locals(), [''])   self.so = sm.SportStat()   except Exception, e:   raise SportDoesNotExist(str(e))   else:   raise SportDoesNotExist(sport)   def __getattr__(self, name):   return getattr(self.so, name) st = SportStat('soccer') st.team_stat(team)
4. Standard python library ,[object Object]
5. Bővíthetőség: C függvények (lib), Python wrappingje
Esettanulmány: pyinfocard (demo)
6. Beágyazhatóság
Esettanulmány: KnowArc python web services
Egyik legkedveltebb beágyazott script nyelv
Gyors web fejlesztész: Django
ORM: Object Relation Mapper
class Reporter(models.Model):   full_name = models.CharField(max_length=70)   def __unicode__(self):   return self.full_name class Article(models.Model):   pub_date = models.DateTimeField()   headline = models.CharField(max_length=200)   article = models.TextField()   reporter = models.ForeignKey(Reporter)   def __unicode__(self):   return self.headline
RESTful URLs
from django.conf.urls.defaults import * urlpatterns = patterns('',   (r'^articles/({4})/$', 'mysite.views.year_archive'),   (r'^articles/({4})/({2})/$', 'mysite.views.month_archive'),   (r'^articles/({4})/({2})/(+)/$', 'mysite.views.article_detail'), )
HTML Sablonok/template python szerű szintaxissal
{% extends &quot;base.html&quot; %} {% block title %}Articles for {{ year }}{% endblock %} {% block content %} <h1>Articles for {{ year }}</h1> {% for article in article_list %} <p>{{ article.headline }}</p> <p>By {{ article.reporter.full_name }}</p> <p>Published {{ article.pub_date|date:&quot;F j, Y&quot; }}</p> {% endfor %} {% endblock %}
Még nem meggyőző?
Google Apps Engine
IronPython, Silverlight
Nem csak Web Wan a Wilagon!
Esettanulmány: Grid Underground Project (demo)
EPR5: ERP/CRM/MRP/SCM/PDM platform
Egyéb nyalánkságok ,[object Object],[object Object],[object Object]
Ipari felhasználás

Weitere ähnliche Inhalte

Mehr von Ferenc Szalai

Hardware Renaissance
Hardware RenaissanceHardware Renaissance
Hardware RenaissanceFerenc Szalai
 
Linux adattárolási képességei
Linux adattárolási képességeiLinux adattárolási képességei
Linux adattárolási képességeiFerenc Szalai
 
CoLinux - avagy két dudás egy csárdában
CoLinux - avagy két dudás egy csárdábanCoLinux - avagy két dudás egy csárdában
CoLinux - avagy két dudás egy csárdábanFerenc Szalai
 
Mesterséges agyak - scifi és valóság határán
Mesterséges agyak - scifi és valóság határánMesterséges agyak - scifi és valóság határán
Mesterséges agyak - scifi és valóság határánFerenc Szalai
 
Emlekező áramköri elemek fizikája
Emlekező áramköri elemek fizikájaEmlekező áramköri elemek fizikája
Emlekező áramköri elemek fizikájaFerenc Szalai
 
Science Meetup bemutató
Science Meetup bemutatóScience Meetup bemutató
Science Meetup bemutatóFerenc Szalai
 
Nagy-teljesítményű, költséghatékony adattárolási technológiák könyvtári körny...
Nagy-teljesítményű, költséghatékony adattárolási technológiák könyvtári körny...Nagy-teljesítményű, költséghatékony adattárolási technológiák könyvtári körny...
Nagy-teljesítményű, költséghatékony adattárolási technológiák könyvtári körny...Ferenc Szalai
 
Adattároló klaszterek
Adattároló klaszterekAdattároló klaszterek
Adattároló klaszterekFerenc Szalai
 
Grid és adattárolás
Grid és adattárolásGrid és adattárolás
Grid és adattárolásFerenc Szalai
 
Klaszter és virtualizációs technikák
Klaszter és virtualizációs technikákKlaszter és virtualizációs technikák
Klaszter és virtualizációs technikákFerenc Szalai
 
Grid és adattárolás
Grid és adattárolásGrid és adattárolás
Grid és adattárolásFerenc Szalai
 
Grid Underground projekt
Grid Underground projektGrid Underground projekt
Grid Underground projektFerenc Szalai
 
Identity 2.0 - a vágy titogzatos tárgya
Identity 2.0 - a vágy titogzatos tárgyaIdentity 2.0 - a vágy titogzatos tárgya
Identity 2.0 - a vágy titogzatos tárgyaFerenc Szalai
 
Grid Underground (GUG) - avagy hogyan építsünk IT szolgáltatás hálózatot a su...
Grid Underground (GUG) - avagy hogyan építsünk IT szolgáltatás hálózatot a su...Grid Underground (GUG) - avagy hogyan építsünk IT szolgáltatás hálózatot a su...
Grid Underground (GUG) - avagy hogyan építsünk IT szolgáltatás hálózatot a su...Ferenc Szalai
 
Budapest New Technology Meetup - az elmúlt egy évünk
Budapest New Technology Meetup - az elmúlt egy évünkBudapest New Technology Meetup - az elmúlt egy évünk
Budapest New Technology Meetup - az elmúlt egy évünkFerenc Szalai
 
Az agy túlélő készlete - avagy tanulási tanácsok az iskolapad utáni mindennap...
Az agy túlélő készlete - avagy tanulási tanácsok az iskolapad utáni mindennap...Az agy túlélő készlete - avagy tanulási tanácsok az iskolapad utáni mindennap...
Az agy túlélő készlete - avagy tanulási tanácsok az iskolapad utáni mindennap...Ferenc Szalai
 
Alapvető beállítások egy levelező rendszer működéséhez
Alapvető beállítások egy levelező rendszer működéséhezAlapvető beállítások egy levelező rendszer működéséhez
Alapvető beállítások egy levelező rendszer működéséhezFerenc Szalai
 
Ata-over-Ethernet és Coraid
Ata-over-Ethernet és CoraidAta-over-Ethernet és Coraid
Ata-over-Ethernet és CoraidFerenc Szalai
 

Mehr von Ferenc Szalai (20)

Hardware Renaissance
Hardware RenaissanceHardware Renaissance
Hardware Renaissance
 
Linux adattárolási képességei
Linux adattárolási képességeiLinux adattárolási képességei
Linux adattárolási képességei
 
CoLinux - avagy két dudás egy csárdában
CoLinux - avagy két dudás egy csárdábanCoLinux - avagy két dudás egy csárdában
CoLinux - avagy két dudás egy csárdában
 
Mesterséges agyak - scifi és valóság határán
Mesterséges agyak - scifi és valóság határánMesterséges agyak - scifi és valóság határán
Mesterséges agyak - scifi és valóság határán
 
Emlekező áramköri elemek fizikája
Emlekező áramköri elemek fizikájaEmlekező áramköri elemek fizikája
Emlekező áramköri elemek fizikája
 
Science Meetup bemutató
Science Meetup bemutatóScience Meetup bemutató
Science Meetup bemutató
 
Virtualization
VirtualizationVirtualization
Virtualization
 
Nagy-teljesítményű, költséghatékony adattárolási technológiák könyvtári körny...
Nagy-teljesítményű, költséghatékony adattárolási technológiák könyvtári körny...Nagy-teljesítményű, költséghatékony adattárolási technológiák könyvtári körny...
Nagy-teljesítményű, költséghatékony adattárolási technológiák könyvtári körny...
 
Adattároló klaszterek
Adattároló klaszterekAdattároló klaszterek
Adattároló klaszterek
 
Grid és adattárolás
Grid és adattárolásGrid és adattárolás
Grid és adattárolás
 
Klaszter és virtualizációs technikák
Klaszter és virtualizációs technikákKlaszter és virtualizációs technikák
Klaszter és virtualizációs technikák
 
Grid és adattárolás
Grid és adattárolásGrid és adattárolás
Grid és adattárolás
 
Grid Underground projekt
Grid Underground projektGrid Underground projekt
Grid Underground projekt
 
Identity 2.0 - a vágy titogzatos tárgya
Identity 2.0 - a vágy titogzatos tárgyaIdentity 2.0 - a vágy titogzatos tárgya
Identity 2.0 - a vágy titogzatos tárgya
 
Grid Underground (GUG) - avagy hogyan építsünk IT szolgáltatás hálózatot a su...
Grid Underground (GUG) - avagy hogyan építsünk IT szolgáltatás hálózatot a su...Grid Underground (GUG) - avagy hogyan építsünk IT szolgáltatás hálózatot a su...
Grid Underground (GUG) - avagy hogyan építsünk IT szolgáltatás hálózatot a su...
 
Budapest New Technology Meetup - az elmúlt egy évünk
Budapest New Technology Meetup - az elmúlt egy évünkBudapest New Technology Meetup - az elmúlt egy évünk
Budapest New Technology Meetup - az elmúlt egy évünk
 
Az agy túlélő készlete - avagy tanulási tanácsok az iskolapad utáni mindennap...
Az agy túlélő készlete - avagy tanulási tanácsok az iskolapad utáni mindennap...Az agy túlélő készlete - avagy tanulási tanácsok az iskolapad utáni mindennap...
Az agy túlélő készlete - avagy tanulási tanácsok az iskolapad utáni mindennap...
 
Alapvető beállítások egy levelező rendszer működéséhez
Alapvető beállítások egy levelező rendszer működéséhezAlapvető beállítások egy levelező rendszer működéséhez
Alapvető beállítások egy levelező rendszer működéséhez
 
Ata-over-Ethernet és Coraid
Ata-over-Ethernet és CoraidAta-over-Ethernet és Coraid
Ata-over-Ethernet és Coraid
 
Xen klaszterek
Xen klaszterekXen klaszterek
Xen klaszterek
 

Miért vagyok Python rajongó? - avagy kalandozások egy nyílt forrású programozási nyelvvel