【问题标题】:In python what is the correct nomenclature for accessing a class attribute using dot notation?在 python 中,使用点符号访问类属性的正确命名是什么?
【发布时间】:2017-01-24 22:47:54
【问题描述】:

这是语义问题,我正在为我的实验室编写的模块编写教程,我想知道是否有使用点符号访问类属性的正确术语。例如:

class funzo:
    def __init__(self,string):
        self.attribute = string
fun = funzo("Sweet sweet data")
fun.attribute

现在可以通过 ??? 访问字符串名为 fun 的对象。

我一直在使用“点引用”一词,但这似乎是错误的。我四处搜索并检查了 python 词汇表,但似乎找不到任何东西。

【问题讨论】:

  • «现在可以通过访问名为 fun 的对象的属性来访问字符串。»
  • @Daniel 双属性警报。
  • accessor 或 getter - 对于 Python,我通常将这个标准的 OOP 术语称为“accessor”(即使在其他语言中,getter 通常指的是属性或属性上的方法) - this question covers it in more detail
  • 我认为您不需要另一个动词:“现在可以通过fun 对象的attribute 属性访问字符串”。 Python 教程可能需要某种方式来描述或命名访问属性的行为,但是模块教程可以假设读者对 Python 足够熟悉,从而假设读者已经知道如何操作。
  • @chepner 这就是我想向几乎没有 Python 或 OOP 背景的科学家描述的问题,所以我尽量让一切变得简单。

标签: python python-3.x oop


【解决方案1】:

属性访问,这是来自customizing it的语言参考部分:

可以定义以下方法来自定义类实例的属性访问的含义(x.name的使用、分配或删除)。

(强调我的)

所以你的报价可以更好地表述为:

现在,可以通过在名为fun 的实例上使用虚线表达式来访问属性attribute

Python Glossary 中的“属性”条目中可以找到术语点表达式

在文档中作为点表达式 的替代选择的另一种选择是,如您的标题中所示,dot-notation。这可以在 Standard Type HierarchyCallables 部分找到,因此您可以考虑的另一个选项是:

现在,可以在名为 fun 的实例上使用点符号访问属性 attribute

在我看来,如果有人至少有一些编程语言经验,那么两者都是完全可以理解的。我更喜欢术语 dot-notation,因此,我会使用后者。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-20
    • 2011-05-20
    • 2022-10-05
    • 2015-09-21
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    相关资源
    最近更新 更多