Czytając „Wstęp do informatyki przy użyciu Pythona”, Charles Dierbach książka , mam pytanie:W jaki sposób powiązana jest nazwa i jej wartość referencyjna?
- Na stronie 210 mówi „Odwołanie jest wartością odniesienia lub„punkty do "lokalizacji innej jednostki. Wartość referencyjną zmiennej można ustalić za pomocą wbudowanego identyfikatora funkcji."
Więc odniesienia tylko adres w pamięci obiektu.
Teraz, jeśli się nie mylę, kiedy utworzyć zmienną jak:
>>> a = 3
Nazwa jest umieszczany automatycznie przez Pythona w nazw.
Jeśli zrobić:
>>> id(a)
4548344816
uzyskać adres w pamięci obiektu , ten, który odwołuje.
Więc to, co chcę wiedzieć, jak to nazwa a wartość referencyjnazwiązane.
Zgaduję, że gdy nazwa jest wprowadzane do przestrzeni nazw, to obejmuje 2 rzeczy:
sama nazwa.
Wartość odniesienia (identyfikator obiektu)
Para jak może: a:reference value
?
Jeśli tak, czy jest jakieś narzędzie instrospekcji, aby zobaczyć, jak wygląda wpis w przestrzeni nazw?
Aha, śledzę kolejną książkę Marka Lutza, "Nauka Pythona", i na stronie. 176 mówi * "zmienne i obiekty są przechowywane w różnych częściach pamięci i są powiązane przez łącza" *. Wiem, że mogę uzyskać adres obiektu z 'id()', ale czy istnieje sposób na znalezienie adresu ** nazwy **? – javi
Również na następnej stronie mówi: "Zmienne są wpisami w tabeli systemowej, ze spacjami dla łączy do obiektów." * Te wpisy, do których się odnosi, są elementami słownika przestrzeni nazw. Każdy ** przedmiot ** w tym słowniku działa jak ** link **, wiążący nazwę i obiekt. Dobrze? – javi
@javi: książka jest nieprecyzyjna. Obiekty klatek przechowują przestrzenie nazw, ale zarówno obiekty klatek * jak i * obiekty nazw (które są tylko obiektami ciągów) wszystkie żyją w tej samej przestrzeni pamięci. –