访问器和修改器方法 (Python)

2024-01-07

我正在尝试找出Python 中的封装。我在 shell 中做了一个简单的小测试,看看有些东西是如何工作的,但它并不像我预期的那样工作。我无法让它发挥作用。这是我的代码:

class Car:
    def __init__(self, carMake, yrMod):
        self.__make = carMake
        self.__yearModel = yrMod
        self.__speed = 0

    #Mutator Methods
    def set_make(self, make):
        self.__make = carMake

    def set_model(self, yrMod):
        self.__yearModel = yrMod

    #def set_speed(self, speed):
        #self.__speed = speed

    #Accessor Methods
    def get_make(self):
        return self.__make

    def get_yearModel(self):
        return self.__yearModel

    def get_speed(self):
        return self.__speed

myCar=Car('Ford', 1968)
myCar2=Car('Nissan', 2012)
myCar.get_make()
'Ford'
myCar.set_make=('Porche')
myCar.get_make()
'Ford'

为什么我的 Car.set_make 没有将福特更改为保时捷?谢谢。


With myCar.set_make=('Porche'),您将此成员设置为 Car 类'Porche'字符串,但您没有调用该方法。

只需删除=解决它:

myCar.set_make('Porche')
myCar.get_make() # Porche

此外,正如 @DSM 指出的,以下参数存在错误set_make:

def set_make(self, make):
    self.__make = make # carMake is not defined!

然而,强烈建议不要在 Python 中使用 getter 和 setter https://stackoverflow.com/questions/1554546/when-and-how-to-use-the-builtin-function-property-in-python#1555169。如果您出于任何原因需要类似的东西,请考虑使用特性 http://docs.python.org/2/library/functions.html#property.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

访问器和修改器方法 (Python) 的相关文章

  • 是否有解决方法可以通过 CoinGecko API 安全检查?

    我在工作中运行我的代码 一切都很顺利 但在不同的网络 家庭 WiFi 上 我不断收到403访问时出错CoinGecko V3 API https www coingecko com api documentations v3 可以观察到 在
  • 如何手动计算分类交叉熵?

    当我手动计算二元交叉熵时 我应用 sigmoid 来获取概率 然后使用交叉熵公式并平均结果 logits tf constant 1 1 0 1 2 labels tf constant 0 0 1 1 1 probs tf nn sigm
  • 使用特定的类/函数预加载 Jupyter Notebook

    我想预加载一个笔记本 其中包含我在另一个文件中定义的特定类 函数 更具体地说 我想用 python 来做到这一点 比如加载一个配置文件 包含所有相关的类 函数 目前 我正在使用 python 生成笔记本并在服务器上自动启动它们 因为不同的
  • 元组有什么用?

    我现在正在学习 Python 课程 我们刚刚介绍了元组作为数据类型之一 我阅读了它的维基百科页面 但是 我无法弄清楚这种数据类型在实践中会有什么用处 我可以提供一些需要一组不可变数字的示例吗 也许是在 Python 中 这与列表有何不同 每
  • 在 django ORM 中查询时如何将 char 转换为整数?

    最近开始使用 Django ORM 我想执行这个查询 select student id from students where student id like 97318 order by CAST student id as UNSIG
  • 如何用python脚本控制TP LINK路由器

    我想知道是否有一个工具可以让我连接到路由器并关闭它 然后从 python 脚本重新启动它 我知道如果我写 import os os system ssh l root 192 168 2 1 我可以通过 python 连接到我的路由器 但是
  • 安装了 32 位的 Python,显示为 64 位

    我需要运行 32 位版本的 Python 我认为这就是我在我的机器上运行的 因为这是我下载的安装程序 当我重新运行安装程序时 它会将当前安装的 Python 版本称为 Python 3 5 32 位 然而当我跑步时platform arch
  • Pandas 日期时间格式

    是否可以用零后缀表示 pd to datetime 似乎零被删除了 print pd to datetime 2000 07 26 14 21 00 00000 format Y m d H M S f 结果是 2000 07 26 14
  • Pandas Merge (pd.merge) 如何设置索引和连接

    我有两个 pandas 数据框 dfLeft 和 dfRight 以日期作为索引 dfLeft cusip factorL date 2012 01 03 XXXX 4 5 2012 01 03 YYYY 6 2 2012 01 04 XX
  • 从Python中的字典列表中查找特定值

    我的字典列表中有以下数据 data I versicolor 0 Sepal Length 7 9 I setosa 0 I virginica 1 I versicolor 0 I setosa 1 I virginica 0 Sepal
  • Python,将函数的输出重定向到文件中

    我正在尝试将函数的输出存储到Python中的文件中 我想做的是这样的 def test print This is a Test file open Log a file write test file close 但是当我这样做时 我收到
  • Docker 中的 Python 日志记录

    我正在 Ubuntu Web 服务器上的 Docker 容器中测试运行 python 脚本 我正在尝试查找由 Python Logger 模块生成的日志文件 下面是我的Python脚本 import time import logging
  • 如何通过索引列表从 dask 数据框中选择数据?

    我想根据索引列表从 dask 数据框中选择行 我怎样才能做到这一点 Example 假设我有以下 dask 数据框 dict A 1 2 3 4 5 6 7 B 2 3 4 5 6 7 8 index x1 a2 x3 c4 x5 y6 x
  • Numpy - 根据表示一维的坐标向量的条件替换数组中的值

    我有一个data多维数组 最后一个是距离 另一方面 我有距离向量r 例如 Data np ones 20 30 100 r np linspace 10 50 100 最后 我还有一个临界距离值列表 称为r0 使得 r0 shape Dat
  • 如何在 Windows 命令行中使用参数运行 Python 脚本

    这是我的蟒蛇hello py script def hello a b print hello and that s your sum sum a b print sum import sys if name main hello sys
  • 在本地网络上运行 Bokeh 服务器

    我有一个简单的 Bokeh 应用程序 名为app py如下 contents of app py from bokeh client import push session from bokeh embed import server do
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解
  • cv2.VideoWriter:请求一个元组作为 Size 参数,然后拒绝它

    我正在使用 OpenCV 4 0 和 Python 3 7 创建延时视频 构造 VideoWriter 对象时 文档表示 Size 参数应该是一个元组 当我给它一个元组时 它拒绝它 当我尝试用其他东西替换它时 它不会接受它 因为它说参数不是
  • Kivy - 单击按钮时编辑标签

    我希望 Button1 在单击时编辑标签 etykietka 但我不知道如何操作 你有什么想法吗 class Zastepstwa App def build self lista WebOps getList layout BoxLayo

随机推荐

  • 如何从 Vue.js 中深度嵌套的子组件访问数据

    我正在使用 Vue js 构建一个界面 我有一个表格 该表格包含一个地址和其他杂项数据 所以我在Vue中创建了两个组件 UserData and UserAddress UserData包含一个实例UserAddress作为子组件 我想根据
  • $(document).ready 的不同形式

    我见过有人写 document ready function 和一些写作 function 有什么区别以及何时使用什么 是 jQuery 对象本身 它在被调用时实现了一大堆不同的接口 string 运行选择器或构造节点 domElement
  • 单个 CSV 文件中的多个分隔符

    我有一个 CSV 它有三个不同的分隔符 即 和 不同列之间 我如何使用Python解析这个CSV 我的数据如下 2017 01 24 05 19 30 0000 TRANSACTIONDelim secondUSER LOGINDelim
  • 将 iAd 框架和 AdSupport 框架添加到构建阶段 - Xcode 6

    在 Xcode 6 中 如何将 iAd 框架和 AdSupport 框架添加到构建阶段 我转到 构建阶段 页面 但我唯一的选择是添加 新复制文件阶段 新运行脚本阶段 和 新标头阶段 我想要输入的框架属于哪些框架 如何输入这些框架 您应该单击
  • 如何在机器上找到 regasm 位置

    我正在创建一个使用 regasm 将 NET 程序集注册到 COM 的安装程序 不同的客户端将在其计算机上安装不同的 Microsoft Net 版本 我需要提前知道高潮位置才能使用它 我应该只在以下位置寻找它还是还有其他可能的位置 C W
  • Python Regex - 检查大写字母和小写字母

    我正在尝试检查紧随其后的小写字母的大写字母 诀窍在于 在它之前会出现一堆垃圾大写字母和数字 例如 AASKH317298DIUANFProgramming is fun 正如你所看到的 有很多我们不需要的东西直接出现在我们需要的短语之前 P
  • 如何完全迭代 QStandardItemModel?

    我有一个 QStandardItemModel 我将其显示在 QTreeView 中 工作正常 为了突出显示相关行 我想突出显示其中的一些行 因此我有一个 QStringList 其中包含要突出显示的 QStandItem 的名称 QStr
  • 弹簧靴。无法找到“org.hibernate.SessionFactory”类型的 bean

    我似乎无法弄清楚为什么我的 Spring Boot 应用程序无法自动创建 SessionFactory 据我了解 它应该自动获取属性文件并能够创建会话工厂 bean 我需要将一些 Dao 类中的会话工厂与 hibernate 一起使用 但是
  • 应用程序中需要记录多少内容以及多少内容过多?

    只是想知道有多少人登录他们的应用程序 我见过这个 我通常喜欢使用错误日志 级别来记录任何异常 被应用程序捕获 我会用 INFO 日志级别为 第一级别 调试方案显示每当我 进入或退出方法 从那里我 使用DEBUG日志级别进行跟踪 详细资料 致
  • 在 Unix/Linux 中将文件移动到不同目录所需的权限[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想澄清所需的权限 以便将文件 A 从目录 B 移动到目录 C 我认为命令是 mv B A C A 名称不变 我认为需要以下内容是否正确
  • 使用 Selenium 2 执行复制和粘贴

    有没有办法使用 Selenium 2 和 Python 绑定执行复制和粘贴 我突出显示了要复制的元素 然后执行以下操作 copyActionChain key down Keys COMMAND send keys C key up Key
  • 涉及 XSS 时,htmlspecialchars 与 htmlentities

    我看到了很多关于这个问题的相互矛盾的答案 许多人喜欢引用这样的话 仅靠 php 函数并不能保护您免受 xss 攻击 到底哪些 XSS 可以通过 htmlspecialchars 进行攻击 哪些 XSS 可以通过 htmlentities 进
  • 如何让 Newtonsoft 将 bool 序列化为 false,而不是 False 或“false”[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 如果我序列化一个 bool 值 我会得到这样的结果 myboolValue False 我意识到这是由于微软的ToStr
  • “border-style: double”如何分割像素?

    浏览器如何决定 3 行每行将获得多少像素 以下是我的一些案例 希望能帮助您理解 border 1px double black gt 1 0 0 or 0 1 0 or 0 0 1 border 2px double black gt 0
  • OpenGL ES - 更改纹理中颜色的色调

    我正在用 OpenGL ES 为 iPhone 开发一个简单的 2D 游戏 我的问题是我想使用不同的色调渲染纹理 基本上我想改变我渲染的纹理中颜色的色调 仅仅改变 glColor 是不行的 因为它还会影响图像中没有颜色的部分 有任何想法吗
  • r - 根据另一列中的匹配复制值

    在此数据框中 Item lt c A B A A A A A B Trial lt c Fam Fam Test Test Test Test Test Test Condition lt c apple cherry Trash Tras
  • 循环弹出混乱

    有人可以告诉我如何让我的网址正确循环到window open我创建 我想知道循环是否是使每个 URL 根据我的旋转的正确答案setInterval 如果是的话 我想知道循环是否需要在var rotate for var i 0 i lt u
  • 如何删除未来的子模块,但保留其历史记录(与父历史记录链接)?

    假设我有一个项目 它具有使用实现的依赖项git submodule 现在我正在进行更改 不再需要这种依赖关系 我想提交一个更改 其工作原理如下 如果有人检查此提交或任何后代 则该子模块不存在 但是 如果有人签出较旧的提交 或者未与此分支合并
  • C++11 decltype 可用于从现有函数创建函数指针的 typedef 吗?

    Given struct A int foo double a std string b const 我可以像这样创建一个成员函数指针 typedef int A PFN FOO double std string const 很容易 除了
  • 访问器和修改器方法 (Python)

    我正在尝试找出Python 中的封装 我在 shell 中做了一个简单的小测试 看看有些东西是如何工作的 但它并不像我预期的那样工作 我无法让它发挥作用 这是我的代码 class Car def init self carMake yrMo