如何在 Python 中访问私有变量? [复制]

2023-11-26

class Car(object):
    def __init__(self, color, engine, oil):
        self.color = color
        self.__engine = engine
        self.__oil = oil

a = Car('black', 'a cool engine', 'some cool oil')

我们假设 __engine 和 __oil 变量是私有的,这意味着我无法通过像 .__engine 这样的调用来访问它们。但是,我可以使用 __dict__ 变量来访问甚至更改这些变量。

# Accessing
a.__dict__
{'_Car__engine': 'a cool engine', 'color': 'black', '_Car__oil': 'some cool oil'}

# Changing
a.__dict__['_Car__engine'] = "yet another cool engine"
a.__dict__
{'_Car__engine': 'yet another cool engine', 'color': 'black', '_Car__oil': 'some cool oil'}

问题很简单。我只想访问和更改私有变量inside班上。


问题很简单。我希望私有变量只能在类内部访问和更改。

因此,不要在类之外编写访问以开头的变量的代码__。使用 pylint 之类的工具来捕获类似的风格错误。

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

如何在 Python 中访问私有变量? [复制] 的相关文章

随机推荐

  • 为什么 NumPy int 不是 Python int 的实例,但 NumPy float 是 Python float 的实例?

    考虑以下 gt gt gt import numbers gt gt gt import numpy gt gt gt a numpy int 0 gt gt gt isinstance a int False gt gt gt isins
  • 如何使用 Android 导航组件将值传递回先前的片段目的地?

    让 sat 我有一些这样的目的地 从片段A gt 到片段B gt 到片段C 我可以使用安全参数将数据从片段 A 传递到片段 B 也可以使用安全参数从片段 B 传递到片段 C 如果我想将片段 C 中生成的字符串带回片段 B 或片段 A 该怎么
  • Java 8 重复键的流总和条目

    我使用 Java 8 流按某个键对条目列表进行分组 然后按日期对组进行排序 此外 我想做的是 折叠 组中具有相同日期的任何两个条目并将它们相加 我有一个这样的课程 出于示例目的而被精简 class Thing private String
  • xcode 多合一布局:在项目和调试页面之间切换的键盘快捷键?

    当您将 xcode 配置为使用 All in one 布局时 会出现一个切换开关 允许您在项目和调试 模式 之间切换 IDE 调用这些页面 是否有键盘快捷键可以执行切换 Project Cmd 0 zero Build Cmd Shift
  • 我可以同时安装 Ruby on Rails 2.x 和 Ruby on Rails 3

    我有一个 Ubuntu Rails 环境来使用 ROR 现在我正在运行 Rails 2 3 8 我想研究一下 Rails 3 是否可以并行运行两个开发环境 如果没有 如何清理 Rails 2 x 系统以安装 Rails 3 或者我需要安装一
  • 在 SQL Server 中保存日期

    我有一个遗留应用程序 其中输入是日期字符串 即 2009年6月12日 输入的格式始终是字符串 并且是一致的 始终是 dd mm yyyy 目前 遗留应用程序只是将其插入日期时间字段中 显然 如果服务器的本地化文化设置发生变化 我们有一个错误
  • 使用Git显示所有一级后代分支

    如何获取当前 HEAD 的一级后代分支的列表 我可以通过以下方式获取整棵树的列表 git log graph abbrev commit pretty decorate branches 这使 2eff4a7 refs heads issu
  • 为WPF中的所有元素事件添加监听器

    我想在一次调用中挂钩所有可用的元素事件 像这样的事情 elem AddHandler AnyRoutedEvent RoutedEventHandler handler 我怎样才能做到这一点 尝试此操作以获取按钮类型上的所有事件 您可以替换
  • Android:Process.myTid() VS Thread.currentThread().getId()

    我有简单的Activity那个叫AsyncTask 所以我打印一些关于Proces and Thread From onCreate android os Process myUid 10137 From onCreate android
  • PHP 连接到 firebase 是如何工作的?

    如果您有时间阅读firebase php文档 您可以看到如何使用帮助程序库 连接 到firebase 但不幸的是 我认为连接只能由 phpunit 建立 换句话说 输出只能在终端中看到 因为当你在浏览器中运行 php 页面时 它会返回致命错
  • AttributeError:模块“socket”没有属性“AF_PACKET”

    我正在使用 Python 构建一个数据包嗅探程序 但是我遇到了障碍 由于某种原因 我认为套接字没有正确导入 因为我的程序运行时收到以下消息 AttributeError module socket has no attribute AF P
  • 为什么 css "all: unset" 在 MacOS 的 Safari 浏览器中工作得很奇怪?

    所以基本上我做了这种情况 父级有cssall unset 然后我注意到当我使用 Safari 版本12 1 1 14607 2 6 1 1 它的所有子颜色只能受到以下影响 块 甚至不是内联或 important 但只有color行为方式就是
  • “迁移 Django 应用程序”是什么意思?

    我一直在思考很多的意义migrating a Django app在过去的几天里 听说了如何迁移 Django 应用程序南姜戈 也许只是缺乏足够的英语技能 因为英语不是我的母语 或者这是你在程序员生活中遇到的事情之一 这些事情非常简单 需要
  • 如何获取ListView项目的视图?

    我有两个 ListView A 和 B 其中包含相同类型的项目 我创建的类 当我单击 A 中的某个项目时 它会将该对象添加到 B 上 如果我再次单击 则会将其删除 只是当选择一个项目时 我使用 view setBackgroundColor
  • 如何使用 JQuery 更改 onClick 复选框的值?

    在这里 我尝试在单击以下复选框时更改其值 在下面的代码中 我尝试将复选框的值更改为 1 并在未选中时将值更改为 0 但它只需要 false 条件 当取消选中该复选框时 值会更改为 0 但选中时 它不会更改为 1 有什么建议如何解决此问题吗
  • 如何在 SceneKit 中的“自己”轴上移动旋转的 SCNNode?

    下图显示了一个旋转框 应在 X 轴和 Z 轴上水平移动 Y 应该不受影响 以简化场景 这个盒子也可能是相机的 SCNNode 所以我想此时投影没有意义 假设我们想要沿着红色箭头的方向移动盒子 如何使用 SceneKit 来实现这一点 红色箭
  • 具有 Robocopy 和参数传递的 Powershell

    我正在尝试编写一个使用的脚本robocopy 如果我只是手动执行此操作 我的命令将是 robocopy c hold test1 c hold test2 test txt NJH NJS 但是 当我从 powershell 执行此操作时
  • 如何存储CLLocationCooperative2D?

    我正在尝试构建一个应用程序 该应用程序可以构建和保存类似于绘制我的跑步路线的路线 我正在使用面包屑示例代码 特别是CrumbPath and CrumbPathView作为我路线的基础 来自 Apple 两个问题 如果我尝试访问MKMapP
  • 使用 C# 和 Google.Apis.YouTube.v3 列出 YouTube 视频

    我正在尝试使用最新版本的 Google Apis YouTube v3 截至 2014 年 1 月 15 日 执行一些 YouTube 视频交互 我已经完成了以下内容的 NuGet Google Apis YouTube v3 Google
  • 如何在 Python 中访问私有变量? [复制]

    这个问题在这里已经有答案了 class Car object def init self color engine oil self color color self engine engine self oil oil a Car bla