小编wil*_*urd的帖子

为什么Python的"私有"方法实际上不是私有的?

Python使我们能够通过在名称前加上双下划线来在类中创建"私有"方法和变量,如下所示:__myPrivateMethod().那么,如何解释这一点呢

>>> class MyClass:
...     def myPublicMethod(self):
...             print 'public method'
...     def __myPrivateMethod(self):
...             print 'this is private!!'
... 
>>> obj = MyClass()
>>> obj.myPublicMethod()
public method
>>> obj.__myPrivateMethod()
Traceback (most recent call last):
  File "", line 1, in 
AttributeError: MyClass instance has no attribute '__myPrivateMethod'
>>> dir(obj)
['_MyClass__myPrivateMethod', '__doc__', '__module__', 'myPublicMethod']
>>> obj._MyClass__myPrivateMethod()
this is private!!
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?!

我会对那些没有那么做的人解释一下.

>>> class MyClass:
...     def myPublicMethod(self):
...             print 'public method'
...     def __myPrivateMethod(self):
...             print 'this is private!!'
... 
>>> obj = MyClass()
Run Code Online (Sandbox Code Playgroud)

我在那里做的是使用公共方法和私有方法创建一个类并实例化它.

接下来,我称之为公共方法.

>>> obj.myPublicMethod() …
Run Code Online (Sandbox Code Playgroud)

python encapsulation information-hiding python-2.7

632
推荐指数
11
解决办法
41万
查看次数

Comet和jQuery

我已经用javascript对服务器推送进行了一些研究,并且已经找到了普遍的共识,即我正在寻找的是"Comet"设计模式.在jQuery之上构建这个模式有什么好的实现吗?如果没有,这种模式是否有任何好的实现?无论这些问题的答案如何,从实施的角度来看,是否存在关于此模式的任何文档?

javascript jquery design-patterns comet server-push

112
推荐指数
4
解决办法
6万
查看次数

编写用于解析自定义客户端语言的Firefox插件

我有一个除了JavaScript以外的客户端语言的想法,我想研究开发一个Firefox插件,它会在页面中包含这种新语言,比如<script type ="newscript"src ="path /script.ns"/>,就好像它是一种本机支持的语言.该插件将执行所有语言解析,理想情况下能够像浏览器一样执行浏览器上的每个操作以及网页中的html和css.

我已经做了一堆谷歌搜索,并找到了一些关于编写基本的Firefox插件的文章,但没有像这样复杂.

这甚至可能吗?

firefox

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

cherrypy如何处理用户线程?

我正在研究django app,我正在使用cherrypy作为服务器.Cherrypy为每个页面视图创建一个新线程.我希望能够从其中任何一个中访问所有这些线程(负责与django交谈的线程).更具体地说,我希望能够从其中任何一个中访问每个线程的thread_data.这可能吗?如果是这样,我该怎么办?

django concurrency multithreading cherrypy

4
推荐指数
1
解决办法
2919
查看次数