Miért vagyok Python rajongó? avagy kalandozások egy nyílt forrású programozási nyelvvel Szalai Ferenc – Web Service Bricks...
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 "n".join(['a', 'b']) class Foo(Bar1, Bar2):   __init__(self, a):   self.a = a   bubu(self...
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.item...
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) Lam...
3.2. Dekorátorok
@login_required  @check_league @check_league_admin def add_season(request, league): ... class Foo(object):   @staticmethod...
4. Introspection
import settings class SportStat(object):   def __init__(self, sport):   if sport in settings.AVAILABLE_SPORTS:   try:   sm...
4. Standard python library <ul><li>BaseHTTPServer, base64, bsddb, bz2, calendar, cgi, cmd, compiler, ctypes, curses, distu...
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_na...
RESTful URLs
from django.conf.urls.defaults import * urlpatterns = patterns('',   (r'^articles/(d{4})/$', 'mysite.views.year_archive'),...
HTML Sablonok/template python szerű szintaxissal
{% extends &quot;base.html&quot; %} {% block title %}Articles for {{ year }}{% endblock %} {% block content %} <h1>Article...
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 <ul><li>JPython: python interpreter in java </li></ul><ul><li>Mayavi: OpenGL 3D sciptelhető adatvizuali...
Ipari felhasználás
Upcoming SlideShare
Loading in …5
×

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

1,677 views

Published on

2008

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,677
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. Miért vagyok Python rajongó? avagy kalandozások egy nyílt forrású programozási nyelvvel Szalai Ferenc – Web Service Bricks (szferi@wsbricks.com)
  2. 2. Mi az a Python?
  3. 5. Általános célú nyílt forrású objetum-orientált script/dinamikus nyelv
  4. 6. Milyen platformon érhető el?
  5. 7. Bármelyiken
  6. 8. és még sokan máok...
  7. 9. Legfontosabb tulajdonságok
  8. 10. 0. Le a kapcsoszárójelekkel és pontosvesszőkkel! Indentálj rendesen!
  9. 11. for i in xrange(0,10): if i % 2 == 0: print 'baba'
  10. 12. 1. Objetum orientált, - majdnem minden objetum
  11. 13. 'valami'.upper() print &quot;n&quot;.join(['a', 'b']) class Foo(Bar1, Bar2): __init__(self, a): self.a = a bubu(self, b): print 'bubu' + str(b)
  12. 14. 2. Magas szintű dinamikus típusok
  13. 15. 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
  14. 16. 3. Funcionális és procedurális programozási eszközök
  15. 17. 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
  16. 18. 3.2. Dekorátorok
  17. 19. @login_required @check_league @check_league_admin def add_season(request, league): ... class Foo(object): @staticmethod def bar(arg1): ...
  18. 20. 4. Introspection
  19. 21. 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)
  20. 22. 4. Standard python library <ul><li>BaseHTTPServer, base64, bsddb, bz2, calendar, cgi, cmd, compiler, ctypes, curses, distutils, email, ftplib, getopt, hashlib, htmllib, inspect, math, mimetools, os, os.path, Pickle, profile, re, socket, SimpleXMLRCPServer, sqlite3, threading, urllib2, xml, zlib </li></ul>
  21. 23. 5. Bővíthetőség: C függvények (lib), Python wrappingje
  22. 24. Esettanulmány: pyinfocard (demo)
  23. 25. 6. Beágyazhatóság
  24. 26. Esettanulmány: KnowArc python web services
  25. 27. Egyik legkedveltebb beágyazott script nyelv
  26. 28. Gyors web fejlesztész: Django
  27. 29. ORM: Object Relation Mapper
  28. 30. 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
  29. 31. RESTful URLs
  30. 32. from django.conf.urls.defaults import * urlpatterns = patterns('', (r'^articles/(d{4})/$', 'mysite.views.year_archive'), (r'^articles/(d{4})/(d{2})/$', 'mysite.views.month_archive'), (r'^articles/(d{4})/(d{2})/(d+)/$', 'mysite.views.article_detail'), )
  31. 33. HTML Sablonok/template python szerű szintaxissal
  32. 34. {% 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 %}
  33. 35. Még nem meggyőző?
  34. 36. Google Apps Engine
  35. 37. IronPython, Silverlight
  36. 38. Nem csak Web Wan a Wilagon!
  37. 39. Esettanulmány: Grid Underground Project (demo)
  38. 40. EPR5: ERP/CRM/MRP/SCM/PDM platform
  39. 41. Egyéb nyalánkságok <ul><li>JPython: python interpreter in java </li></ul><ul><li>Mayavi: OpenGL 3D sciptelhető adatvizualizáció </li></ul><ul><li>Pywin32: win32 lib python wrapper </li></ul>
  40. 42. Ipari felhasználás

×