gpt4 book ai didi

python - 使用函数调用设置实例变量的正确方法是什么

转载 作者:行者123 更新时间:2023-11-28 21:50:23 25 4
gpt4 key购买 nike

使用仅调用外部方法的 setter 方法时,最佳做法是什么。我不希望用户更改此值。我有以下结构

class Instruction(object):
def __init__(self, address):
super(Instruction, self).__init__()
self.address = address
self.mnem = self.__set_mnem()

@property
def mnem(self):
return self.__mnem

def __set_mnem(self):
return extModule.GetMnem(self.address)

我应该换成这个吗

    @mnem.setter
def mnem(self, mnem=None):
if not mnem:
self.__mnem = extModule.GetMnem(self.address)
else:
self.__mnem = None

最佳答案

如果你的属性应该是只读的,你根本就没有给它一个setter,不。设置属性访问的私有(private)属性:

class Instruction(object):
def __init__(self, address):
super(Instruction, self).__init__()
self.address = address
self.__mnem = extModule.GetMnem(self.address)

@property
def mnem(self):
return self.__mnem

现在 Instruction().mnem 是只读的,它的值是在创建实例时设置的。

关于python - 使用函数调用设置实例变量的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31991529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com