netch: (Default)
[personal profile] netch
А ещё очень хочу чтобы кто-нибудь поделился тайным знанием как в классе определить константу и чтобы её нельзя было поменять.
Игры с __getattr__ конечно знаю, но это пушка по воробьям.
А так создаётся ощущение работы как в старом Фортране.

UPDATE: http://dottedmag.livejournal.com/218778.html - злобно но эффективно. Жаль, что только для новых классов.

Date: 2006-08-27 05:13 pm (UTC)
From: [identity profile] ormuz.livejournal.com
А просто в теле класса определить не получается?
типа
class zhu:
zuka="bazuka"
def getZuka():

Date: 2006-08-27 05:35 pm (UTC)
From: [identity profile] ormuz.livejournal.com
А, такие константы - наверное никак.

>>> math.pi=4
>>> print math.pi
4

Date: 2006-08-28 11:45 am (UTC)
From: [identity profile] virkony.livejournal.com
Примеры констант:
3.14, "immutable", (1,6), forzenset(("a","b"))

остальное ссылки на константы или словари/списки

a.__dict__["pi"] = 5

Date: 2006-08-27 05:17 pm (UTC)
From: [identity profile] ormuz.livejournal.com
def getZuka():
return self.zuka

Ещё там хитро обрабатываются переменные с __ в начале имени. Мне [livejournal.com profile] virkony рассказывал.

Свинство конечно, я на global/local наступил через три года активного использования и полтора мегабайта кода.
(deleted comment)

Date: 2006-09-05 05:47 pm (UTC)
From: [identity profile] dottedmag.livejournal.com
Нашёл. Спасибо [livejournal.com profile] buriy за напоминание.

class Obj(object):
    def prop_getter(self):
        return 42

    prop = property(prop_getter)


Соответственно, в property() можно ещё setter и deleter передать.

Date: 2006-09-07 05:31 pm (UTC)
From: [identity profile] krokhobor.livejournal.com
SymbolType (http://peak.telecommunity.com/DevCenter/SymbolType)?

Profile

netch: (Default)
netch

December 2023

S M T W T F S
     12
3456789
10111213141516
171819 20212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 24th, 2026 07:17 am
Powered by Dreamwidth Studios