可以写一些像:
class Test(object):
def _decorator(self, foo):
foo()
@self._decorator
def bar(self):
pass
Run Code Online (Sandbox Code Playgroud)
这失败了:@self中的自我是未知的
我也尝试过:
@Test._decorator(self)
Run Code Online (Sandbox Code Playgroud)
也失败了:测试未知
我想暂时更改装饰器中的一些实例变量,然后在更改它们之前运行装饰方法.
看起来我还没有处理异常处理的问题.我不知所措:(以下代码有时会返回此错误:
File "applications/pingback/modules/plugin_h_pingback.py", line 190, in ping
db(table.id==id_).update(status=status)
UnboundLocalError: local variable 'status' referenced before assignment
Run Code Online (Sandbox Code Playgroud)
我希望status总是被分配一个值.可能是抛出了一些其他异常(也许是在内部try)并且finally模糊了它?
...
try:
server_url = self._get_pingback_server(target)
except PingbackClientError, e:
status = e.message
else:
try:
server = xmlrpclib.ServerProxy(server_url)
status = server.pingback.ping(self.source, target)
except xmlrpclib.Fault, e:
status = e
finally:
db(table.id==id_).update(status=status) # <-- UnboundLocalError
...
Run Code Online (Sandbox Code Playgroud)
谢谢,HC
我有点害怕问这个因为害怕报复"你无法用正则表达式解析HTML"邪教.为什么不re.subn(r'<(script).*?</\1>', '', data, re.DOTALL)删除多行"脚本",但最后只删除两个单行"脚本"?
谢谢,HC
>>> import re
>>> data = """\
<nothtml>
<head>
<title>Regular Expression HOWTO — Python v2.7.1 documentation</title>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '2.7.1',
COLLAPSE_MODINDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
"""
>>> print (re.subn(r'<(script).*?</\1>', '', data, re.DOTALL)[0])
<nothtml>
<head>
<title>Regular Expression HOWTO — Python v2.7.1 documentation</title>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '2.7.1',
COLLAPSE_MODINDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
}; …Run Code Online (Sandbox Code Playgroud) 请在Plunker上试一试 - http://plnkr.co/edit/js7WOhjgKwUeElrdNwv0?p=preview
我该怎么解决这个问题呢?与Plunker及以下的示例不同,我正在处理的指令需要一个独立的范围(或者至少当前的实现使用一个,我宁愿不重写它).
<!DOCTYPE html>
<html>
<head>
<script data-require="jquery@*" data-semver="2.0.3" src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<script data-require="angular.js@*" data-semver="1.1.5" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js"></script>
<script>
var app = angular.module("MyApp",[]);
app.directive("myDirective", function(){
return {
//scope:{},
link: function(){}
};
});
</script>
<style>
.ng-invalid{
border: 1px solid red;
}
</style>
</head>
<body ng-app="MyApp">
<h1>My Directive</h1>
<p>Test the checkbox below then uncomment //scope:{} and try again.</p>
<input type="checkbox" ng-model="isActive" />
<input type="text" ng-model="foo"
my-directive
ng-disabled="!isActive"
ng-required="isActive" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
最好的问候,汉斯
我意识到这个问题与要求某人的歌曲名称不同,除了那个人喜欢它之外什么也记不起来.对不起,但它就像这样一首歌一样让我烦恼.
不久前,我遇到了一些命令行工具,它准备一个文件,以便让人们恢复中止的下载.如果我没记错的话,它是一个非常古老的工具,基本上它生成了第二个文件,其中包含原始块信息.生成的文件很小,可供下载.然后可以使用此元文件获取实际文件,并可以恢复损坏的下载(因此,除了p2p之外,它有点像.torrent.)
请问有谁知道这个命令的名字?如果是这样,使用它还是有意义还是rsync是更好的选择?
谢谢,HC