Wednesday, January 21, 2009

Python - funkcje też posiadają atrybuty

def funkcja():
    pass

funkcja.imie = 'Jan'
funkcja.wiek = 40
Jak widać zawykła funkcja to dla Pythona nadal obiekt, można mu więc (jak zwykłym obiektom) przypisywać różne atrybuty. Może kiedyś, okaże się to użyteczna - ja na razie nie umiem znaleźć zastosowania dla takiej składni.

4 comments:

secator said...

A z ciekawości, udało Ci się dostać do zmiennych funkcji z 'wnętrza' tej funkcji (z jej kodu)??

Johny JKJK said...
This comment has been removed by the author.
Johny JKJK said...

Tak pi razy oko.

def a():
print a.something

a.something = 'Jan'
a()

Wyświetli "Jan". Natomiast nadal nie widzę zastosowania tego. Więcej możesz sobie poczytać w PEP 232 :P

Anonymous said...

ciekawe zastosowanie:

http://www.saltycrane.com/blog/2008/01/python-variable-scope-notes/