我刚开始使用python类,对于如何正确地更改示例属性中的值,我有一些疑问:
我举了下面的例子:
import numpy as np
class myClass:
def __init__(self):
self.name = "none"
self.val = np.array([])
myClass
的示例将具有两个属性:name
和values
中的一个或多个。
创建myClass
对象后
obj1 = myClass()
我想更改obj1
的变量name
和val
。
正确的做法是什么?
正在执行:
obj1.name="name1"
obj1.val = np.zeros(3)
或者创建成员函数来定义:
def setName(self, name):
self.name = name
def setVal(self, arr):
self.val = arr
obj1.setName("name2")
obj1.setName(np.zeros(3))
如果我想遍历val
arr,我可以:
for i in range(3):
obj1.val[i] = i
或者我应该创建一个函数来分配数组中的“i”项
def setValI(self, i, val):
self.val[i] = val
并在循环中将其用作:
for i in range(3):
obj1.setValI(i, i)
还是一切都一样,我可以用任何我想用的方法?
此致
1条答案
按热度按时间bmvo0sr51#
最简单的方法是将
__init__
更改为需要两个参数:如果你想改变
name
和/或val
的值,请使用getter和setter方法,因为你不应该访问类本身之外的示例变量。因为你没有
private
示例变量,这只是一个协议,你不能直接访问变量。你也可以在你的示例变量前加一个下划线,以强调这些变量应该被视为private变量: