我正在尝试创建一个装饰器类来计算调用函数的次数,但是我收到一条错误消息:
"TypeError: __exit__() takes exactly 1 argument (4 given)"
Run Code Online (Sandbox Code Playgroud)
我真的不知道我是怎么给它四个论点的.我的代码看起来像这样:
class fcount2(object):
__instances = {}
def __init__(self, f):
self.__f = f
self.__numcalls = 0
fcount2.__instances[f] = self
def __call__(self, *args, **kwargs):
self.__numcalls += 1
return self.__f(*args, **kwargs)
def __enter__(self):
return self
def __exit__(self):
return self
@staticmethod
def count(f):
return fcount2.__instances[self.__f].__numcalls
@fcount2
def f(n):
return n+2
for n in range(5):
print f(n)
print 'f count =',f.count
def foo(n):
return n*n
with fcount2(foo) as g:
print g(1)
print g(2)
print 'g count …Run Code Online (Sandbox Code Playgroud) 我想创建一个Chef库:
该库旨在与外部系统连接并从那里检索一些输入.我需要访问节点属性以允许用户覆盖从外部系统接收的输入:
inputs = MyLib.get_inputs
Run Code Online (Sandbox Code Playgroud)
这是受那些文档的启发.
class Chef::Recipe::MyLib
def self.get_inputs
override_inputs = node.fetch(:mylib, Hash.new).fetch(:override_inputs, nil)
unless override_inputs.nil?
return override_inputs
end
# Do stuff and return inputs (no problem here)
# ...
end
end
Run Code Online (Sandbox Code Playgroud)
现在我得到:
undefined local variable or method `node' for Chef::Recipe::Scalr:Class
Run Code Online (Sandbox Code Playgroud) 我收到谷歌播放消息,我的应用程序崩溃,在消息
java.lang.NullPointerException
at android.webkit.WebViewDatabase.initDatabase(WebViewDatabase.java:234)
at android.webkit.WebViewDatabase.init(WebViewDatabase.java:212)
at android.webkit.WebViewDatabase.access$000(WebViewDatabase.java:40)
at android.webkit.WebViewDatabase$1.run(WebViewDatabase.java:193)
Run Code Online (Sandbox Code Playgroud)
我没有在google或stackoverflow中找到类似的probloem所以我不知道为什么这个crach,但我知道这是由webview引起的.
我有一个包含很多字符串的文件.我试图分别计算这些字符串的SHA1哈希值并存储它们
import hashlib
inp = open("inp.txt" , "r")
outputhash = open("outputhashes.txt", "w")
for eachpwd in inp:
sha_1 = hashlib.sha1()
sha_1.update(eachpwd)
outputhash.write(sha_1.hexdigest())
outputhash.write("\n")
Run Code Online (Sandbox Code Playgroud)
我面临的问题是,一旦字符串SHA1被计算,下一个字符串被追加(我觉得这就是为什么我没有得到正确的哈希值)并且正在计算其哈希值.因此我没有得到正确的哈希.我是python的新手.我知道该怎么做,但不知道该怎么做.你能指出我正确的方向来解决这个问题吗?
我正在尝试在全新安装的Ubuntu Server 14.04上为Python 3.4创建虚拟环境.我按照venv模块的说明进行操作:
https://docs.python.org/3/library/venv.html#module-venv
我没有很多Python 3.4或Ubuntu的经验.
当我输入命令时:
pyvenv testDir
Run Code Online (Sandbox Code Playgroud)
我回来了:
pyvenv: command not found
Run Code Online (Sandbox Code Playgroud)
是什么造成的?
我正在运行一个Django网站,我使用Celery来实现预防性缓存 - 也就是说,即使在用户请求之前,我也会计算和缓存结果.
但是,在某些情况下,我的一个Celery任务可能会被调用很多(实际上我说比平均完成的速度要快得多).我想对它进行速率限制,以便它实际上没那么有用时不会消耗大量资源.
但是,我想首先了解如何强制执行Celery的celery.task.base.Task.rate_limit属性.任务被拒绝了吗?它们是否延迟并在以后执行?
提前致谢!
我正在使用 gunicorn 运行 Django 1.7。通过将证书和密钥文件作为参数传递,我可以使用 gunicorn 使用 https。
当我通过 geotrust ssl 工具验证我的服务器时,它说一切都很好,除了 -
This server may be vulnerable: SSLv3 is enabled
Disable SSLv3 and use TLS 1.0 or higher.
Run Code Online (Sandbox Code Playgroud)
我对此很陌生,无法理解如何做到这一点。这是与机器有关还是与gunicorn有关?
Python应该是强类型的.
例如:'abc'['1']不起作用,因为你需要在那里提供一个整数,而不是字符串.将引发错误,您可以继续纠正它.
但是hashlib的情况并非如此.确实,请尝试以下方法:
import hashlib
hashlib.md5('abc') #Works OK
hashlib.md5(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: md5() argument 1 must be string or read-only buffer, not int
hashlib.md5(u'abc') #Works, but shouldn't : this is unicode, not str.
haslib.md5(u'é')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
当然,它不会因为a而失败TypeError,而是因为UnicodeEncodeError.UnicodeEncodeError当您尝试将unicode编码为字符串时,应该会引发此问题.
当我猜测Hashlib默默地试图将unicode转换为字符串时,我想我离真相并不太远.
现在.我同意,hashlib表示该参数hashlib.md5() …
我有一个类(dicts 列表),我希望它自己排序:
class Table(list):
…
def sort (self, in_col_name):
self = Table(sorted(self, key=lambda x: x[in_col_name]))
Run Code Online (Sandbox Code Playgroud)
但它根本不起作用.为什么?怎么避免呢?除了在外部进行排序外,例如:
new_table = Table(sorted(old_table, key=lambda x: x['col_name'])
Run Code Online (Sandbox Code Playgroud)
是不是可以操纵对象本身?拥有以下内容更有意义:
class Table(list):
pass
Run Code Online (Sandbox Code Playgroud)
比:
class Table(object):
l = []
…
def sort (self, in_col_name):
self.l = sorted(self.l, key=lambda x: x[in_col_name])
Run Code Online (Sandbox Code Playgroud)
我认为,这是有效的.一般来说,Python中没有任何方法可以改变对象(不仅仅是实例变量)?
与Django一起开发django 的资源Tango有多好?鉴于我已完成从官方django网站编写您的第一个django应用程序教程的基础知识?