gpt4 book ai didi

Python - 访问类的 protected 成员_

转载 作者:太空狗 更新时间:2023-10-29 21:52:05 26 4
gpt4 key购买 nike

给定一个具有一些 protected 成员和修改它们的公共(public)接口(interface)的类,什么时候可以普遍接受直接访问 protected 成员?我有一些具体的例子:

  1. 单元测试
  2. 内部私有(private)方法,例如 __add__ 或 __cmp__ 访问其他人的 protected 属性
  3. 递归数据结构(例如访问链表中的 next._data)

我不想公开这些属性,因为我不想公开触及它们。我的语法 IDE 语法突出显示一直说我访问 protected 成员是错误的 - 谁在这里?

编辑 - 在下面添加一个简单示例:

class Complex:
def __init__(self, imaginary, base):
self._imaginary = imaginary
self._base = base

def __str__(self):
return "%fi + %f" % self._base, self._imaginary

def __add__(self, other):
return Complex(self._imaginary + other._imaginary, self._base + other._base)

Pycharm 使用以下突出显示 other._imaginaryother._base:

Access to a protected member _imaginary of a class

最佳答案

已解决 - 问题实际上与缺少类型提示有关。以下现在有效:

class Complex:
def __init__(self, imaginary, base):
self._imaginary = imaginary
self._base = base

def __str__(self):
return "%fi + %f" % self._base, self._imaginary

def __add__(self, other):
"""
:type other: Complex
:rtype Complex:
"""
return Complex(self._imaginary + other._imaginary, self._base + other._base)

关于Python - 访问类的 protected 成员_,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42736044/

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