久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python - 通過類的方法返回自身新的實(shí)例

瀏覽:122日期:2022-07-14 14:20:28

問題描述

定義一個(gè)類A,并有一個(gè)自身ID+1的方法,代碼如下:

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

將實(shí)例x定義為類A,id為1,打印x.id:

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

現(xiàn)在想創(chuàng)建一個(gè)同樣也是類A的實(shí)例y, 通過類A的newid方法進(jìn)行創(chuàng)建:

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

可以得到準(zhǔn)確的y的ID為2, 但是發(fā)現(xiàn)x的id也被修改了:

[In]:print(x.id)[Out]:2

請(qǐng)問如何實(shí)現(xiàn)在不修改原實(shí)例x的情況下將y正確的生成,謝謝!

問題解答

回答1:

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

這個(gè)必然變呀你要不變干嘛+1應(yīng)該是return A(self.id+1)

回答2:

def newid(self):self.id = self.id + 1 # 這里self.id 已經(jīng)是2了return A(self.id)

將y正確的生成

什么是正確的y

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 新和县| 沂南县| 玛沁县| 南城县| 西乌珠穆沁旗| 朝阳县| 祁门县| 汾西县| 富民县| 昭觉县| 集贤县| 易门县| 承德市| 泰和县| 大邑县| 唐海县| 宝丰县| 汉中市| 沭阳县| 泰安市| 永寿县| 乌拉特后旗| 普安县| 湾仔区| 邯郸市| 新源县| 金秀| 达尔| 开远市| 惠东县| 田阳县| 宜黄县| 勃利县| 绥棱县| 洱源县| 惠东县| 哈密市| 封开县| 尚义县| 清镇市| 绩溪县|