Rumah  >  Soal Jawab  >  teks badan

Python - Kembalikan contoh baharu dirinya melalui kaedah kelas

Tentukan kelas A dan mempunyai kaedah dengan ID + 1 sendiri. Kodnya adalah seperti berikut:

class A(object):
    def __init__(self, id):
        self.id = id
    def newid(self):
        self.id = self.id + 1
        return A(self.id)

Tentukan contoh x sebagai kelas A, id ialah 1, cetak x.id:

[In]:
x = A(1)
print(x.id)

[Out]:
1

Sekarang saya ingin mencipta contoh y yang juga merupakan kelas A. Cipta melalui kaedah baharu kelas A:

[In]:
y = x.newid()
print(y.id)

[Out]:
2

Anda boleh mendapatkan ID tepat y menjadi 2, tetapi anda mendapati bahawa ID x juga telah diubah suai:

[In]:
print(x.id)

[Out]:
2

Sila beritahu saya cara menjana y dengan betul tanpa mengubah suai contoh asal x, terima kasih!

漂亮男人漂亮男人2685 hari yang lalu562

membalas semua(2)saya akan balas

  • 给我你的怀抱

    给我你的怀抱2017-05-18 10:55:17

    def newid(self):
    self.id = self.id + 1
    return A(self.id)

    Ini pasti akan berubah
    Kenapa anda mahu +1 kekal tidak berubah
    Sepatutnya pulangan A(self.id+1)

    balas
    0
  • 某草草

    某草草2017-05-18 10:55:17

    def newid(self):
            self.id = self.id + 1    # 这里self.id 已经是2了
            return A(self.id)

    Jana y dengan betul

    Apakah y yang betul

    balas
    0
  • Batalbalas