Jawaban:
Nilai argumen default dievaluasi pada waktu fungsi-menentukan, tetapi self
merupakan argumen hanya tersedia pada waktu panggilan fungsi. Jadi argumen dalam daftar argumen tidak dapat saling merujuk.
Ini adalah pola umum untuk menetapkan argumen None
dan menambahkan tes untuk itu dalam kode:
def p(self, b=None):
if b is None:
b = self.a
print b
Jika Anda telah tiba di sini melalui google, pastikan untuk memeriksa bahwa Anda telah memberikan diri sebagai parameter pertama ke fungsi kelas. Terutama jika Anda mencoba referensi nilai untuk objek di dalam fungsi.
def foo():
print(self.bar)
> NameError: nama 'diri' tidak ditentukan
def foo(self):
print(self.bar)