gpt4 book ai didi

python - 使用前导下划线以避免与属性和方法发生冲突

转载 作者:太空宇宙 更新时间:2023-11-03 19:40:38 24 4
gpt4 key购买 nike

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

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 属性是私有(private)的吗?谢谢! :)

最佳答案

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

也就是说,在您的特定示例中,鉴于您为 _Temperature 提供了一个访问器方法,为什么人们不应该将其视为私有(private)的?他们应该通过调用 温度 来访问它,而不是直接查看它。

关于python - 使用前导下划线以避免与属性和方法发生冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60445347/

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