草庐IT

Getters-Setter

全部标签

python - 为什么在 Python OOP 中使用 Getters/Accessors 是(或不是)好的做法?

这个问题在这里已经有了答案:Whyusegettersandsetters/accessors?(37个答案)关闭8年前。为什么-或者为什么不-在PythonOOP中专门使用getter和setter是一种好习惯?我的课本是这样说的:importrandomclassDie(object):"""Simulateagenericdie."""def__init__(self):self.sides=6self.roll()defroll(self):"""Updatesthediewitharandomroll."""self.value=1+random.randrange(self

python - SQLAlchemy:声明性 Mixin 类中的 getter/setter

我正在尝试为我打算在我的数据库模式中使用的混合类定义简单的getter/setter方法:fromsqlalchemyimportColumn,Integer,create_enginefromsqlalchemy.ormimportsynonym,scoped_session,sessionmakerfromsqlalchemy.ext.declarativeimportdeclarative_base,declared_attrengine=create_engine('sqlite:///')Base=declarative_base(bind=engine)Session=sc

python - "tf.train.replica_device_setter"是如何工作的?

我了解到tf.train.replica_device_setter可用于始终在同一参数服务器(PS)(使用循环法)和一个工作人员上的计算密集型节点上自动分配变量。相同的变量如何在多个图形副本中重复使用,由不同的工作人员构建?参数服务器是否只查看工作人员要求的变量名称?这是否意味着如果两个图中的变量命名相同,则不应并行使用任务来执行两个不同的图? 最佳答案 tf.train.replica_device_setter()它的行为非常简单:它纯粹是本地决定为每个tf.Variable分配一个设备。在创建时——以循环方式跨参数服务器任务

python - 属性 getter/setter 在 Python 2 中无效

我对python中的属性有点困惑。考虑以下代码classA:@propertydefN(self):print("Agetter")returnself._N@N.setterdefN(self,v):print("Asetter")self._N=vdef__init__(self):self._N=1classB:@propertydefN(self):print("Bgetter")returnself.a.N@N.setterdefN(self,v):print("Bsetter")self.a.N=vdef__init__(self):self.a=A()if__name__

python - 正确使用字典值的 getter/setter

我是Python的新手,所以如果这里有任何明显不好的地方,请指出。我有这个字典的对象:traits={'happy':0,'worker':0,'honest':0}每个特征的值应该是1-10范围内的整数,并且不允许添加新特征。我想要getter/setter,这样我就可以确保这些约束得到保留。下面是我现在如何制作getter和setter:defgetTrait(self,key):ifkeynotinself.traits.keys():raiseKeyErrorreturntraits[key]defsetTrait(self,key,value):ifkeynotinself.

python - 覆盖继承的属性 setter

我有一个名为Node的类,它有一个importancesetter和getter,如下所示:classNode:@propertydefimportance(self):returnself._importance@importance.setterdefimportance(self,new_importance):ifnew_importanceisnotNone:new_importance=check_type_and_clean(new_importance,int)assertnew_importance>=1andnew_importance稍后,我有一个继承自Node的

python - 有副作用的 setter/getter

我创建了一个类,其对象初始化为一堆XML代码。该类能够从该X​​ML中提取各种参数并将它们缓存在对象状态变量中。这些参数的潜在数量很大,用户很可能不需要其中的大部分参数。这就是我决定执行“惰性”初始化的原因。在下面的测试用例中,这样的参数是title。当用户第一次尝试访问它时,getter函数解析XML,正确初始化状态变量并返回其值:classMyClass(object):def__init__(self,xml=None):self.xml=xmlself.title=Nonedefget_title(self):ifself.__titleisNone:self.__title=

python - 如何使用 Sphinx 为 Python 属性 setter 生成文档?

我有一个类似下面的Python类,其中的文档字符串旨在通过Sphinx转换为文档。:classDirection(object):"""Adirectioninwhichmovementcanbemade."""def__init__(self):self._name=None@propertydefname(self):"""Theuniquenameofthedirection.:return:Thedirectionname:rtype:string"""returnself._name@name.setterdefname(self,value):"""Setsthedirec

Python:通用的 getter 和 setter

TL;DR:必须为每个property()的变量定义一组唯一的getter和setter很糟糕。我可以定义通用的getter和setter并将它们用于我想要的任何变量吗?假设我用一些不错的getter和setter创建了一个类:classFoodefgetter(self):return_bar+'sasquatch'defsetter(self,value):_bar=value+'unicorns'bar=property(getter,setter)非常棒,对吧?现在假设我输入了另一个名为“baz”的变量,我不希望它被排除在这个sasquatch/unicorn的乐趣之外。好吧,

ios - UIAppearance setTranslucent error : Illegal property type, c for appearance setter, _installAppearanceSwizzleForSetter

试用iOS7:[[UINavigationBarappearance]setTranslucent:NO];出现崩溃和错误:***Terminatingappduetouncaughtexception'NSInvalidArgumentException',reason:'***Illegalpropertytype,cforappearancesetter,_installAppearanceSwizzleForSetter:'***Firstthrowcallstack:(0x16ad9b80x142e8b60x16ad7ab0x72163d0x724c340x169daca0x