小编Gab*_*iel的帖子

Python super()参数:为什么不是super(obj)?

我试图了解何时以及如何正确使用Python中的super()(2.7.x或3.x)

>>> help(super)口译员告诉我如何称呼它:

class super(object)
 |  super(type) -> unbound super object
 |  super(type, obj) -> bound super object; requires isinstance(obj, type)
 |  super(type, type2) -> bound super object; requires issubclass(type2, type)
Run Code Online (Sandbox Code Playgroud)

我明白在Python3.x中,现在可以在类定义中使用super(),但我不明白为什么super(obj)不可能.或者super(self)在类定义中.

我知道必须有理由,但我找不到它.对我来说,这些线条相当于super(obj.__class__, obj)或者super(self.__class__, self)那些可以正常工作吗?

我认为super(obj)即使在Python 3.x中输入也是一个很好的捷径.

python inheritance super

27
推荐指数
2
解决办法
7165
查看次数

Tulip/asyncIO:为什么不是所有的调用都是异步的,并指明何时应该同步?

当Guido 谈到 Tulip时,我参加了SF Python聚会,Tulip是Python中异步操作的未来asyncIO库.

该带走的是,如果你想要的东西被异步运行,你可以使用"yield from" + expression和几个装饰的指定后随之而来的通话yield from应该异步执行.关于它的好处是你可以正常读取该函数中的语句(就好像它是同步的),并且它的行为就好像它在执行该函数时是同步的(返回值和错误/异常传播和处理) ).

我的问题是:为什么没有相反的行为,即默认情况下所有函数调用都是异步的(并且没有yield from),并且当你想同步执行某些东西时,它们有不同的显式语法?

(除了需要另一个关键字/语法规范)

python asynchronous python-3.x python-asyncio

10
推荐指数
2
解决办法
1545
查看次数

Python GC引用计数和Objective-C的ARC之间有什么区别?

我正在阅读有关各种语言的内存管理以及Objective-C没有托管内存这一事实,因为它会导致移动应用程序的用户体验断断续续.

我知道ARC没有处理循环引用,而Python的GC也没有.

我知道ARC根本不是垃圾收集器,因此它不会停止执行主程序来执行内存管理.

Python可以使用混合方法吗?利用ARC的一些优点,同时更少地运行GC(或者更短的时间),以便它仍然可以处理循环引用?

或者像在Python社区中尝试的那样?

编辑:我知道Python使用引用计数,但据我所知,引用降至0的对象不会立即从内存中删除(ARC会这样做).我想知道是否立即释放该对象占用的内存可以使Python更适合在低内存环境中使用,并且因为在这种情况下GC可能运行得更少,它会导致更少的线程中断.就UX而言,这两件事对于移动应用程序来说都是理想的选择.

python garbage-collection objective-c

2
推荐指数
1
解决办法
703
查看次数