3 回答

TA貢獻1784條經驗 獲得超2個贊
如果我理解你想要做什么:
class PersonInfo:
def __init__(self,name,age,height,hairColour):
self.name = name
self.age = age
self.height = height
self.hairColour = hairColour
def toList(self):
return [self.name, self.age, self.height, self.hairColour]
順便說一下,類名的第一個字母總是大寫。
編輯:要實現您想要做的事情:
old = PersonInfo("old", 1, 2, "blue")
new = PersonInfo(*old.toList())
new.name = "new"
print(old.name) #'old'

TA貢獻1798條經驗 獲得超3個贊
使用復制模塊:
函數 copy() 對任意 Python 對象的淺拷貝操作。
import copy
class PersonInfo:
def __init__(self, name, age, height, hair_colour):
self.name = name
self.age = age
self.height = height
self.hairColour = hair_colour
personArray = []
for x in range(20, 24):
personArray.append(PersonInfo("John", x, 6, "Brown"))
personStorage = copy.copy(personArray[2])
personStorage.name = "Ana"
print("\rpersonArray[2].name is %s\n"
"\rpersonStorage.name is %s"
% (personArray[2].name, personStorage.name))

TA貢獻1898條經驗 獲得超8個贊
我已經創建了 setter 和 getter 來獲取數據。此外,您還可以創建保存數據的實例的副本。
from copy import deepcopy
class PersonInfo:
def __init__(self,name,age,height,hairColour):
self.name = name
self.age = age
self.height = height
self.hairColour = hairColour
x = PersonInfo("Mario",34,1.70,"blue")
print(x.height) # prints 1.70
x1 = deepcopy(x)
print(x1.age)
添加回答
舉報