相关疑难解决方法(0)

有人可以在Python中解释__all__吗?

我越来越多地使用Python,并且我一直__all__在不同的__init__.py文件中看到变量集.有人可以解释这是做什么的吗?

python syntax namespaces

873
推荐指数
10
解决办法
26万
查看次数

为什么某些函数在函数名之前和之后都有下划线"__"?

这似乎发生了很多,并且想知道这是否是Python语言中的要求,还是仅仅是常规问题?

此外,有人可以命名并解释哪些功能倾向于具有下划线,以及为什么(__init__例如)?

python methods function double-underscore

393
推荐指数
6
解决办法
23万
查看次数

为什么在C++类中使用成员变量的前缀

许多C++代码使用语法约定来标记成员变量.常见的例子包括

  • 公共成员的m_ memberName(根本使用公共成员)
  • _ memberName为私人成员或所有成员

其他人尝试在使用成员变量时强制使用this-> member.

根据我的经验,大多数较大的代码库都无法一致地应用这些规则.

在其他语言中,这些惯例远没有那么普遍.我只偶尔在Java或C#代码中看到它.我想我从未在Ruby或Python代码中看到它.因此,似乎有一种趋势,即更多现代语言不对成员变量使用特殊标记.

这个约定今天在C++中是否仍然有用,或者它只是一个时代错误.特别是因为它在库之间使用不一致.没有其他语言显示没有成员前缀可以做到吗?

c++ coding-style naming-conventions

141
推荐指数
12
解决办法
10万
查看次数

使用变量和方法的Underscore vs Double下划线

有人很好地向我解释__method()破坏但是由于有很多其他人需要帮助而没有进一步打扰他,我想知道是否有人可以进一步详细说明差异.

例如,我不需要修改但是保持私有所以有人不能做instance._method()?或者它是否只是通过使其独一无二来覆盖另一个变量?我不需要我的内部方法"隐藏",但由于它们是特定的使用我不希望它们在课外使用.

python

127
推荐指数
3
解决办法
9万
查看次数

在Python中是否存在可变的命名元组?

任何人都可以修改namedtuple或提供替代类,以便它适用于可变对象吗?

主要是为了可读性,我想要类似于namedtuple这样做:

from Camelot import namedgroup

Point = namedgroup('Point', ['x', 'y'])
p = Point(0, 0)
p.x = 10

>>> p
Point(x=10, y=0)

>>> p.x *= 10
Point(x=100, y=0)
Run Code Online (Sandbox Code Playgroud)

必须可以腌制生成的对象.并且根据命名元组的特征,当表示时,输出的排序必须与构造对象时参数列表的顺序相匹配.

python mutable namedtuple

105
推荐指数
6
解决办法
3万
查看次数

Python中的"私有"(实现)类

我正在编写一个由两部分组成的小型Python模块:

  • 一些定义公共接口的函数,
  • 上述函数使用的实现类,但在模块外部没有意义.

起初,我决定通过使用它在函数内部定义它来"隐藏"这个实现类,但这妨碍了可读性,如果多个函数重用同一个类,则不能使用它.

那么,除了评论和文档字符串之外,是否有一种机制将类标记为"私有"或"内部"?我知道下划线机制,但据我所知它只适用于变量,函数和方法名称.

python access-modifiers

97
推荐指数
7
解决办法
7万
查看次数

如何在Pandas中找到数字列?

让我们说df是一个熊猫DataFrame.我想找到所有数字类型的列.就像是:

isNumeric = is_numeric(df)
Run Code Online (Sandbox Code Playgroud)

python types pandas

96
推荐指数
8
解决办法
8万
查看次数

使用字符串而不是点语法访问Django模型的字段?

在Django中,我可以这样做:

test = Test.objects.get(id=1)
test.name
Run Code Online (Sandbox Code Playgroud)

我希望能够使用动态生成的字符串访问属性,如下所示:

test['name']
Run Code Online (Sandbox Code Playgroud)

或者,使用字符串的任何其他语法.我试过了

test._meta.get_field_by_name('name')
Run Code Online (Sandbox Code Playgroud)

但这会返回字段本身而不是值.

有任何想法吗?

django django-models

69
推荐指数
4
解决办法
3万
查看次数

Python中的私有变量和方法

可能重复:
Python中对象名称之前的单下划线和双下划线的含义

对于Python中的私有成员和方法,我应该使用_foo(下划线)或__bar(双下划线)?

python private private-members private-methods

65
推荐指数
3
解决办法
12万
查看次数

Python中的私有成员

如何在Python中将方法和数据成员设为私有?或者Python不支持私有成员?

python oop class member-variables

61
推荐指数
5
解决办法
5万
查看次数