Thread pointer auf hash referenz (15 answers)
Opened by Graf Herschel at 2015-06-05 12:54

hlubenow
 2015-06-09 02:06
#181288 #181288
User since
2009-02-22
875 Artikel
BenutzerIn
[default_avatar]
Hmm, tja, das will man aber normalerweise nicht in Python machen.
Was man machen will, wäre in Perl:
Code (perl): (dl )
1
2
3
4
5
6
7
#!/usr/bin/perl
my @a = (1, 2, 3);
my @b = @a;
$a[1] = 'x';
foreach my $i (@b) {
    print "$i\n";
}

Und das ginge in Python so:
Code (python): (dl )
1
2
3
4
5
#!/usr/bin/python
a = [1, 2, 3]
b = a[:]
a[1] = 'x';
print b

Es kann also sein, daß man eine Kopie von einer Liste haben möchte. Der Einfachheit halber schreibt man dann in Python "b = a". Technisch ist das eine Referenz, aber wenn das sich im Verhalten bemerkbar macht, geht man eben zu "b = a[:]" über. Das Verhalten einer Referenz möchte man eigentlich nicht haben, man braucht es auch nicht.
In Deinem Beispiel in Python, also mit Referenz, hast Du ja auch nur "print b" geschrieben. Das Dereferenzieren geht automatisch, der Programmierer muß sich nicht wie in Perl darum kümmern. Das führt dazu, daß er darauf normalerweise gar nicht seine Aufmerksamkeit richtet, und sich um andere Dinge als um Referenzen kümmert.
Aus dieser Sicht möchte ich eben auch in Perl Referenzen eher vermeiden. Your mileage may vary, of course.
Last edited: 2015-06-09 02:09:01 +0200 (CEST)

View full thread pointer auf hash referenz