Трошки питонової магії... або repr and getattr

Post date: Sep 14, 2010 3:45:53 PM

Отож, якось давно у далекому селі К постала задача, а саме зробити аби щось робило десь так

>>> p = People(username='Zada', email='q@q.com')

>>> p.email

q@q.com

>>> p.email = 'w@w.com'

>>> p.email

w@w.com

>>> type(p.email)

<type Field>

Так, після тривалих мандрів у пошуку розв'язку поставленої задачі аФФтар згенерував наступне:

#!/usr/bin/python

# -*- coding: utf-8 -*-

class A(object):

a=0

def __init__(self, a=0):

self.a=a

def __repr__(self):

return str(self.a)

class B(object):

a = A(9)

def __setattr__(self, name, value):

if name == "a":

object.__getattribute__(self, name).a=value

else:

object.__setattr__(self, name, value)

Тому рекомендую почитати про різні штуки типу getattr setattre and object.__getatribute__()

PS http://www.cheat-sheets.org/#Python RTFM