小编Nic*_*ght的帖子

TypeError:'module'对象不可调用

File "C:\Users\Administrator\Documents\Mibot\oops\blinkserv.py", line 82, in __init__
    self.serv = socket(AF_INET,SOCK_STREAM)
TypeError: 'module' object is not callable
Run Code Online (Sandbox Code Playgroud)

为什么我收到此错误?我糊涂了.

你需要知道什么来回答我的问题?

python sockets

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

为什么Python easy_install无法在我的Mac上运行?

我有一台运行Python 2.6的Mac.当我尝试使用时,easy_install我收到此消息:

/usr/bin/easy_install-2.6:7: UserWarning: Module pkg_resources was already imported from /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.pyc, but /Library/Python/2.6/site-packages is being added to sys.path
  from pkg_resources import load_entry_point
/usr/bin/easy_install-2.6:7: UserWarning: Module site was already imported from /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site.pyc, but /Library/Python/2.6/site-packages is being added to sys.path
  from pkg_resources import load_entry_point
Traceback (most recent call last):
  File "/usr/bin/easy_install-2.6", line 10, in <module>
    load_entry_point('setuptools==0.6c9', 'console_scripts', 'easy_install')()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 271, in load_entry_point
    return False
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 2173, in load_entry_point
    deps = []
ImportError: Entry point ('console_scripts', 'easy_install') …
Run Code Online (Sandbox Code Playgroud)

python macos easy-install

59
推荐指数
4
解决办法
9万
查看次数

为什么我的实例变量不在__dict__中?

如果我A按如下方式创建一个类:

class A:
    def __init__(self):
        self.name = 'A'
Run Code Online (Sandbox Code Playgroud)

检查__dict__会员看起来像{'name': 'A'}

但是,如果我创建一个类B:

class B:
    name = 'B'
Run Code Online (Sandbox Code Playgroud)

__dict__ 是空的.

是什么两者之间的区别,为什么没有name在显示出来B__dict__

python

34
推荐指数
2
解决办法
4366
查看次数

为什么argparse给我一个列表清单?

我刚刚注意到argparse中的一个行为使我感到困惑(我猜我之前从未使用它作为一个愚蠢的文件列表):

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('multi', action='append', nargs='+')
print(parser.parse_args())
Run Code Online (Sandbox Code Playgroud)

这给了我输出:

~$ ./testargs.py foo bar baz
Namespace(multi=[['foo', 'bar', 'baz']])
~$ 
Run Code Online (Sandbox Code Playgroud)

我希望multi['foo', 'bar', 'baz'],不是一个列表中列表.按原样,我必须args.multi[0]在处理之前抓住,这不是什么大问题,但感觉就像一个丑陋的疣,我想知道为什么它在那里.

我是在做傻事add_argument,还是这只是一个不可避免的怪癖?

python argparse

25
推荐指数
1
解决办法
7663
查看次数

Python 3中的Web网关接口

我终于得出结论,我再也不能仅仅希望正在进行的Py3k/WSGI 灾难问题能够很快得到解决,所以我需要做好准备继续前进.

不幸的是,我的可用选项看起来并不是很好:

  • 虽然我发现FastCGI的一些不同的Python模块散布在网络上,但它们似乎都没有得到太多(如果有的话)注意和/或维护,特别是关于Python 3.x,并且很难区分哪个,如果任何,都是可行的.
  • 一直回到内置的CGI模块并不比从头开始构建一些东西好一些(更糟糕的是,在Python 3.3之前,有一个重要的错误或两个可能无法得到关注).
  • 在生产webapp中直接处理HTTP没有更高的罪恶.无论如何,这仍然是重新发明轮子.

当然有人在生产中在3.x上部署webapps.你使用什么网关接口,哪些模块/库,为什么?

python wsgi fastcgi python-3.x

24
推荐指数
1
解决办法
3164
查看次数

"仅评估一次"对于Python中的链式比较意味着什么?

一位朋友引起了我的注意,在我指出一个奇怪之后,我们都很困惑.

比方说,Python的文档已经说过至少2.5.1(还没有进一步检查:

比较可以任意链接,例如,x <y <= z等于x <y和y <= z,除了y仅被评估一次(但在两种情况下,当x <y被发现时,根本不评估z是假的).

我们的困惑在于"y仅被评估一次"的含义.

鉴于一个简单而有人工作的课程:

class Magic(object):
    def __init__(self, name, val):
        self.name = name
        self.val = val
    def __lt__(self, other):
        print("Magic: Called lt on {0}".format(self.name))
        if self.val < other.val:
            return True
        else:
            return False
    def __le__(self, other):
        print("Magic: Called le on {0}".format(self.name))
        if self.val <= other.val:
            return True
        else:
            return False
Run Code Online (Sandbox Code Playgroud)

我们可以产生这样的结果:

>>> x = Magic("x", 0)
>>> y = Magic("y", 5)
>>> z = Magic("z", 10)
>>> 
>>> if x < y …
Run Code Online (Sandbox Code Playgroud)

python

19
推荐指数
2
解决办法
3757
查看次数

当调用__repr __()时?

print OBJECT打电话OBJECT.__str__(),然后什么时候OBJECT.__repr__()打电话?我看到,print OBJECT调用OBJECT.__repr__()OBJECT.__str__()不存在,但我希望这不是调用的唯一途径__repr__().

python

13
推荐指数
2
解决办法
9857
查看次数

Python属性更改侦听器模式

有人知道跟踪python中字典对象的更改的任何简单方法吗?我处于一个很高级别的crud,所以我有几个方法来处理更改字典,如果字典更改我想调用一个函数来基本上做一个Observer/Notify.

 class MyClass(object):
     def update(self, item):
        changed = False

        if(self.my_dict.has_key(item.id)):
           self.my_dict[item.id] = item
           changed = True

        if(changed):
          self.notify()
Run Code Online (Sandbox Code Playgroud)

我试图避免的是所有跟踪(设置布尔值)代码.希望有一种更简单的方法来跟踪变化.这是一个简单的例子,但可能有更复杂的逻辑导致我必须设置更改的标志.

python

11
推荐指数
1
解决办法
4641
查看次数

如何在C中将结构存储和检索到共享存储区中

对于单一赋值,我需要创建一个最多10个文件名的循环列表,然后将它们存储在共享内存区域中,这样2个子进程就可以读/写列表(使用信号量来控制访问).麻烦的是,我是一个全新的C新手,我感到失落和绝望,因为它完全超出了我的深度.我需要一些帮助来填补我的知识.

现在,我只是一次只关注它一个问题,而目前,我只是试图将我的循环列表放入共享内存区域.

到目前为止,我有:

typedef struct FILE
{
   struct FILE *f_link;  /* forward link for linked list */
   char name[255];       /* name of the file */

} FILE_entry;
Run Code Online (Sandbox Code Playgroud)

作为我的结构,它将保存对下一个文件的引用(f_link).这样我就可以调用 - > f_link来获取列表中的下一个项目,并且第10个元素的f_link将直接返回到第1个.我这样做的原因是我可以在没有迭代器的情况下简单地遍历列表(并且不必像使用数组那样检查列表的结尾).

我也知道我需要用来shmget获取内存区域,我理解它,我传递shmget一个键,一个大小和一个标志(我没有得到),它返回一个int类型的标识符.

所以我的问题是2折.如何将链接列表存储到共享内存区域 - 如何从共享内存区域访问它?

c unix shared-memory

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

使用BeautifulSoup查找以给定字母开头的所有元素

如果我想找到所有带有BeautifulSoup的id = test的<p>元素,我使用:

for item in soup.findAll('p', {"id": "test"}):
Run Code Online (Sandbox Code Playgroud)

我如何找到每一个

ID以特定字母开头的元素 - 让我们说"t"?

我试过"t*"但它不起作用.

python beautifulsoup

5
推荐指数
1
解决办法
3924
查看次数