使用下划线来避免与属性和方法发生冲突

问题描述 投票:1回答:1

我最初的问题是;如何格式化相同的属性和方法名称? Martijn in this post回答了这个问题。 Martijn建议在属性名称前添加一个下划线,但是在阅读the docs之后,我觉得这意味着该属性是私有的。我是否将实例属性与类属性混为一谈?类属性的下划线是否一定不一定意味着该属性是私有的?

import random


class RandomName:
    def __init__(self, _name=None):
        self._name = _name

    def name(self):
        common_male_names = ['James', 'John', 'Robert', 'Michael', 'William', 'David', 'Richard', 'Joseph', 'Thomas',
                             'Charles']
        chosen_name = random.choice(common_male_names)
        self._name = chosen_name

_name属性是否为私有?谢谢! :)

python pep8
1个回答
0
投票

Python中没有“私有”之类的东西。有些人使用下划线作为惯例,表示应将会员视为私人会员,但这纯粹是一种社会惯例,而不是该语言的一部分。

也就是说,在您的特定示例中,鉴于您要提供_temperature的访问器方法,为什么不应人们认为它是私有的?他们应该只通过调用temperature来访问它,而不是直接查看它。

© www.soinside.com 2019 - 2024. All rights reserved.