2017-12-02 15:33:12 +01:00
|
|
|
"""
|
|
|
|
**ćwiczenie 1**
|
|
|
|
Każdy obiekt w Pythonie na wbudowaną funkcję ``id()``, która zwraca liczbę, która jest unikatowa i stała dla obiektu.
|
|
|
|
Pozwala ona w prosty sposób sprawdzić, który obiekt jest *mutable*a, który *immutable*: jeżeli po wykonaniu operacji,
|
|
|
|
zwracana liczba jest stała, to oznacza, że obiekt jest *mutable*. Sprawdź zachowanie funkcji na obiektach typy:
|
|
|
|
* lista,
|
|
|
|
* napis (string),
|
|
|
|
* liczba zmiennoprzecinkowa.
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
def f(typ):
|
|
|
|
return id(typ)
|
|
|
|
|
|
|
|
def tests():
|
|
|
|
lista=[1,2,3]
|
|
|
|
napis='1234'
|
|
|
|
float=1.42
|
|
|
|
id_table_back = [f(lista),f(napis),f(float)]
|
|
|
|
typ = ['lista','napis','liczba zmiennoprzecinkowa']
|
|
|
|
lista.append(5)
|
|
|
|
napis='1234'+'5'
|
|
|
|
float*=2
|
|
|
|
id_table_now = [f(lista), f(napis), f(float)]
|
|
|
|
|
|
|
|
for i in range(len(id_table_back)):
|
|
|
|
if id_table_back[i]==id_table_now[i]:
|
|
|
|
print(typ[i],'jest mutable')
|
|
|
|
else:
|
|
|
|
print(typ[i],'jest immutable')
|
|
|
|
tests()
|
|
|
|
|