相关疑难解决方法(0)

使用@property与getter和setter

这是一个纯Python特定的设计问题:

class MyClass(object):
    ...
    def get_my_attr(self):
        ...

    def set_my_attr(self, value):
        ...
Run Code Online (Sandbox Code Playgroud)

class MyClass(object):
    ...        
    @property
    def my_attr(self):
        ...

    @my_attr.setter
    def my_attr(self, value):
        ...
Run Code Online (Sandbox Code Playgroud)

Python让我们可以这样做.如果你要设计一个Python程序,你会使用哪种方法?为什么?

python properties getter-setter

711
推荐指数
13
解决办法
41万
查看次数

列表是否是线程安全的?

我注意到经常建议使用具有多个线程的队列,而不是列表和.pop().这是因为列表不是线程安全的,还是出于其他原因?

python multithreading list python-multithreading python-3.x

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

哪些类不能被子类化?

是否有关于哪些内置和标准库类不可子类化("最终")的规则?

从Python 3.3开始,这里有几个例子:

  • bool
  • function
  • operator.itemgetter
  • slice

我发现了一个问题,它涉及C语言和纯Python中"final"类的实现.

我想了解是什么原因可以解释为什么一个班级被选为首选的"最终".

python inheritance language-design class python-3.x

71
推荐指数
1
解决办法
6247
查看次数

防止Python中的函数重写

有什么办法可以阻止子类覆盖基类中的方法吗?

我的猜测是没有,但我来自.NET世界,我正在努力使我的API尽可能健壮,所以任何输入都非常感激.

class Parent:
    def do_something(self):
        '''This is where some seriously important stuff goes on'''
        pass

class Child(Parent):
    def do_something(self):
        '''This should not be allowed.'''
        pass
Run Code Online (Sandbox Code Playgroud)

是否有可能强制执行此操作?我知道编译器不会有帮助,所以可能通过一些运行时检查?或者它不是一种传播事物的pythonic方式?

python

13
推荐指数
3
解决办法
7037
查看次数

Python相当于.Net的密封类

python是否有类似于密封类的东西?我相信它在java中也被称为final类.

换句话说,在python中,我们可以标记一个类,以便它永远不会被继承或扩展吗?python曾经考虑过有这样的功能吗?为什么?

免责声明

实际上试图理解为什么密封课程甚至存在.答案在这里(和很多,很多,很多,很多,很多,真的很多其他地方)没有满足我的人,所以我试图从不同的角度看.请避免对这个问题的理论答案,并专注于标题!或者,如果你坚持,至少请给出csharp中密封类的一个非常好的实用例子,指出如果它是未密封的话会破坏大的时间.

我不是两种语言的专家,但我确实知道两种语言.就在昨天,在使用csharp进行编码时,我了解了密封类的存在.现在我想知道python是否有相同的东西.我相信它的存在是有充分理由的,但我真的没有得到它.

.net python class sealed

8
推荐指数
1
解决办法
1809
查看次数