python - 了解 Python 中的属性语法和功能
问题描述
我正在使用 python 2.7,我创建了一个类,并在其中获得了一些属性。我正在使用一些值输入从类中实例化一个对象。班上:
class Prop(object):
def __init__(self, data):
self.A = data
和 getter/setter:
@property
def A(self):
return self._A
@A.setter
def A(self, data):
self._A = data
以上工作正常。在我的主脚本中,我正在实例化:
prop_demo = Prop('some text')
但是,如果我在 with 内部进行更改__init__
,self.A = data
则self._A = data
不会A
通过 setter,那么我认为它有点错过了拥有 setter 的意义。我更改了它,因为对我来说使用_
内部类变量似乎更直观,并且在self.A = data
我看来,该类的实例应该做的事情(在类之外,在我的主脚本中)。
我有两个问题:
- 为什么我们这样做
self.A
而不是self._A
在init中?也许我错过了关于_
python 类变量的重要性的一些东西? - 为什么在init类里面我们需要调用setter,而setter在创建对象的时候不会自动执行?为什么当我实例化一个对象时设置器不会自动执行?
解决方案
推荐阅读
- c# - 无法将“System.Int32”类型的对象转换为“System.Int64”类型
- android - 试图将谷歌支付集成到我的安卓应用中
- types - 类型构造函数和数据类型之间有什么区别和关系?
- angular - 如何使用 http Angular 访问对象内部的数组?
- php - PHP Query 不适用于我为它创建的函数
- amazon-web-services - 为什么 serverless-next.js 不创建 lambda?
- laravel - Laravel 6 将 GeoJson 导入 mariadb 10.3
- python - 如何实现全息图的多行标题?
- c# - 如何将列表中相同但数量不同的 2 个项目合并为一个具有数量总和的项目
- python - 收到一条错误消息,指出我需要指定 steps_per_epoch