[python] Pulnocni rozjimani :-)
Hynek Fabian
hynek.fabian na firma.seznam.cz
Úterý Květen 12 10:28:48 CEST 2015
Skutecna zlodejna neni tak hezky deklarovana,
ale dela se pekne pod rukou:
a = SuperMaxiSecureAccount()
a.__class__ = Thief
On 05/12/2015 12:46 AM, Jan Bednařík wrote:
> Trošku z jiného soudku:
>
> $ python3
> Python 3.4.3 (default, Mar 23 2015, 04:19:36)
> [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
> Type "help", "copyright", "credits" or "license" for more information.
>>>>
>>>> class Account:
> ... def deposit(self, amount):
> ... print('saved:', amount)
> ...
>>>> class SecureAccount(Account):
> ... def safe_deposit(self, amount):
> ... print('*secure transaction begin*')
> ... super().deposit(amount)
> ... print('*secure transaction end*')
> ...
>>>> sa = SecureAccount()
>>>> sa.safe_deposit(100)
> *secure transaction begin*
> saved: 100
> *secure transaction end*
>>>>
>>>> class Thief(Account):
> ... def deposit(self, amount):
> ... print('STOLEN:', amount)
> ...
>>>> class MyAccount(SecureAccount, Thief):
> ... pass
> ...
>>>> ma = MyAccount()
>>>> ma.safe_deposit(200)
> *secure transaction begin*
> STOLEN: 200
> *secure transaction end*
>>>>
>
> Honza
>
> 2015-05-11 23:57 GMT+02:00 Matěj Cepl <mcepl na cepl.eu
> <mailto:mcepl na cepl.eu>>:
>
> On 2015-05-11, 20:53 GMT, Honza Král wrote:
> > Jen pozor, ze tohle je chovani CPythonu, tedy jedne z implementaci a
> > nikoli definice chovani pythonu, nelze tedy na to spolehat a
> > porovnavani integereru by se melo vzdy provadet pres == a nikdy pres
> > is, i kdybychom meli 1000% jistotu, ze to budou jen cisla od 0 do 10.
> > Honza Král
>
> Skutečně, neni Python jako Python:
>
> $ jython
> Jython 2.7b4 (default:3672e624962a, Feb 13 2015, 04:59:14)
> [OpenJDK 64-Bit Server VM (Oracle Corporation)] on java1.7.0_79
> Type "help", "copyright", "credits" or "license" for more
> information.
> >>> a = 256
> >>> b = 256
> >>> a is b
> True
> >>> a = 257
> >>> b = 257
> >>> a is b
> True
> >>>
> $
>
> Zajímavě,
>
> Matěj
> --
> http://www.ceplovi.cz/matej/, Jabber: mcepl<at>ceplovi.cz
> <http://ceplovi.cz>
> GPG Finger: 89EF 4BC6 288A BF43 1BAB 25C3 E09F EF25 D964 84AC
>
> The ratio of literacy to illiteracy is a constant, but nowadays
> the illiterates can read.
> -- Alberto Moravia
> _______________________________________________
> Python mailing list
> python na py.cz <mailto:python na py.cz>
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
>
>
>
> _______________________________________________
> Python mailing list
> python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
Další informace o konferenci Python