class property(object):
def __init__(self, fget):
self.fget = fget
def __get__(self, obj, type = None):
return self.fget(obj)
obj = Person()
# obj.full_name_2()
Person.__dict__['full_name_2'](obj)
# obj.full_name_1
Person.__dict__['full_name_1'].__get__(obj)
>>> class Person:
... first_name = 'First'
... last_name = 'Last'
...
... @property
... def full_name_1(self):
... return ' '.join([self.first_name, self.last_name])
...
... def full_name_2(self):
... return ' '.join([self.first_name, self.last_name])
...
>>> p = Person()
>>> p.full_name_1
'First Last'
>>> p.full_name_2()
'First Last'
>>> p.full_name_2
<bound method Person.full_name_2 of <__main__.Person object at 0xb739a5ec>>
>>>
class Notepad:
def __init__(self):
self._is_change = False
self.code = None
def __setattr__(self, key, value):
if key is 'code' and value is not None:
self.__dict__['_is_change'] = True
self.__dict__['code'] = value
else:
self.__dict__[key] = value
def save(self):
print('Тут вот сохранили данные на диск')
self._is_change = False
@property
def is_change(self):
return self._is_change
note_text = Notepad()
print('is_change {}'.format(note_text.is_change))
print('Изменили данные в self.code')
note_text.code = 'bla bla'
print('is_change {}'.format(note_text.is_change))
note_text.save()
print('is_change {}'.format(note_text.is_change))
SELECT f1, @i := @i + 1
FROM table1
JOIN (SELECT @i := 0) t
SELECT f1, f2
FROM
(
SELECT f1, f2, @i := @i + 1 AS num
FROM table1
JOIN (SELECT @i := 0) t
ORDER BY f3
) sel
WHERE sel.num % 5 = 0
pip install SQLAlchemy
pip install sqlalchemy-orm-tree