相关疑难解决方法(0)

在对象名称之前单个和双下划线的含义是什么?

有人可以解释在Python中对象名称之前有前导下划线的确切含义吗?另外,解释单个和双重前导下划线之间的区别.此外,无论所讨论的对象是变量,函数,方法等,这个含义是否保持不变?

python naming-conventions

1205
推荐指数
13
解决办法
36万
查看次数

"__method__"和"方法"之间的区别

有什么区别__method__,method_method__

是否有任何或一些随机的原因人们认为__doc__应该是正确的,而不是doc.是什么让一种方法比另一种更特别?

python methods

38
推荐指数
2
解决办法
8100
查看次数

从python多处理模块中的进程池中获取worker数

我试图找到一种方法来直接从multiprocessing.PoolPython 的类实例获取进程数.有没有办法做到这一点?

文档没有显示任何相关内容.

谢谢

python multiprocessing threadpool

14
推荐指数
1
解决办法
7376
查看次数

以属性装饰器的下划线开头的变量

我是Python的新手.所以,如果这是一个基本问题,请原谅我.我在互联网和SO上研究过这个话题,但我找不到解释.我正在使用Anaconda 3.6发行版.

我正在尝试为属性创建一个简单的getter和setter.我将引导你完成我得到的错误.

class Person:
    def __init__(self,name):
        self.name=name

bob = Person('Bob Smith')
print(bob.name)
Run Code Online (Sandbox Code Playgroud)

这打印出我同意的第一个名字,我没有覆盖printgetattribute方法.此外,这里没有房产.这是为了测试基本代码是否有效.

让我们修改代码来添加属性:

class Person:
    def __init__(self,name):
        self.name=name

    @property
    def name(self):
        "name property docs"
        print('fetch...')
        return self.name


bob = Person('Bob Smith')
print(bob.name)
Run Code Online (Sandbox Code Playgroud)

一旦我在PyCharm中编写上面的代码,我就会得到一个黄色的灯泡图标,说明该变量必须是私有的.我不明白其理由.

忽略上面,如果我运行上面的代码,我得到:

Traceback (most recent call last):   File "C:\..., in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)   File "<ipython-input-25-62e9a426d2a9>", line 2, in <module>
    bob = Person('Bob Smith')   File "<ipython-input-24-6c55f4b7326f>", line 4, in __init__
    self.name=name AttributeError: can't set attribute
Run Code Online (Sandbox Code Playgroud)

现在,我研究了这个主题,我发现有两个修复(不知道为什么会这样):

修复#1: 将变量更改name_name

class …
Run Code Online (Sandbox Code Playgroud)

python properties decorator python-3.x python-decorators

6
推荐指数
1
解决办法
615
查看次数