Successfully reported this slideshow.
Your SlideShare is downloading. ×

Magicke metody v Pythonu

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Extending Moose
Extending Moose
Loading in …3
×

Check these out next

1 of 9 Ad

More Related Content

Slideshows for you (20)

Similar to Magicke metody v Pythonu (20)

Advertisement

Recently uploaded (20)

Magicke metody v Pythonu

  1. 1. __magické__ metody v Pythonu(2.x) (ochutnávka) Jirka Vejražka (@JirkaV) @naPyVo #22
  2. 2. class Person(models.Model): name = models.CharField(max_length=128) def __unicode__(self): return self.name class MojeTrida(object): def __init__(self, data): self.data = data
  3. 3. >>> mylist = [] >>> dir(mylist) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
  4. 4. >>> mystring = 'My hovercraft if full of eels' >>> if mystring.index('full') > 0: >>> if ‘full’ in mystring: object.__contains__(self, item) Called to implement membership test operators. Should return true if item is in self, false otherwise. For mapping objects, this should consider the keys of the mapping rather than the values or the key-item pairs.
  5. 5. >>> 'full' in 'My hovercraft is full of eels‘ True >>> class MyStr(str): ... def __contains__(self, elem): ... return False >>> mystring = MyStr('My hovercraft is full of eels') >>> mystring 'My hovercraft is full of eels' >>> 'full' in mystring False
  6. 6. >>> class SortedList(list): ... def __getitem__(self, key): ... return sorted(self)[key] >>> mylist = SortedList([5, 7, 2, 12, 1, 0, 42, 9]) >>> mylist[0] 0 >>> mylist[-1] 42 >>> for x in mylist: ... print x, ... 5 7 2 12 1 0 42 9
  7. 7. >>> import IPy >>> class Network(list): ... def __len__(self): ... return sum([len(IPy.IP(x)) for x in self]) ... >>> firma = Network(['10.0.10.0/24', '10.0.20.128/26', '10.0.30.0/25']) >>> firma ['10.0.10.0/24', '10.0.20.128/26', '10.0.30.0/25'] >>> len(firma) 448
  8. 8. >>> class DobryPrezident(object): ... def __init__(self, prijmeni): ... self.prijmeni = prijmeni ... def __nonzero__(self): ... return self.prijmeni == 'Cimrman‘ >>> dobry_prezident = DobryPrezident('stara Vomackova') >>> if dobry_prezident: ... print 'Mame ji radi!' >>> dobry_prezident = DobryPrezident('Cimrman') >>> if dobry_prezident: ... print 'Budoucnost patri aluminiu!' ... Budoucnost patri aluminiu!
  9. 9. Dotazy? Napsáno s použitím fontu Avería (iotic.com/averia/)

×