小编Ami*_*oni的帖子

如何使用try,除了,否则在Python中正确使用

所以我想知道哪个是写try try语句的正确方法.我是Python中的错误处理新手.

选项1

try:
    itemCode = items["itemCode"]
    dbObject=db.GqlQuery("SELECT * FROM %s WHERE code=:1" % dbName,itemCode).get()
    dbObject.delete() 
except AttributeError:
    print "There's no item with that code"
except KeyError:
    print "Bad parameter name"
except:
    print "Unknow error" 
Run Code Online (Sandbox Code Playgroud)

选项2

try:
    itemCode = items["itemCode"]
except KeyError:
    print "Bad parameter name"
else:    
    dbObject=db.GqlQuery("SELECT * FROM %s WHERE code=:1" % dbName,itemCode).get()
    try:    
        dbObject.delete() 
    except AttributeError:
        print "There's no item with that code"
    except:
        print "Unknow error" 
Run Code Online (Sandbox Code Playgroud)

选项3您可以想到的任何其他更好的选择.

选项1,我们看到我将所有代码都包装在try块中.选项2,它使用嵌套块.它在特定的行语句上引发了一个例外.

如果在某处出现错误,我将很高兴知道它.

python exception python-2.7

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

如何在JavaScript中设置语言环境,例如toLocaleUpperCase()?

我想使用JavaScript toLocaleUpperCase()方法来确保大写字母对于土耳其语言正常工作.但是,我无法确定将土耳其语设置为用户的语言环境.

在现代浏览器中是否有办法在运行时设置区域设置,如果我确定该字符串是土耳其语?

(我在考虑土耳其语时遇到了这个问题,但实际上它可以是任何其他语言.)

javascript string turkish locale internationalization

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

如何用代码点而不是字形替换Perl 6中的字符串?

我需要使用Perl 6从字符串中删除变音符号.我尝试这样做:

my $hum = '????';
$ahm.subst(/<-[\c[HEBREW LETTER ALEF] .. \c[HEBREW LETTER TAV]]>/, '', :g);
Run Code Online (Sandbox Code Playgroud)

我想删除所有不在HEBREW LETTER ALEF(א)和HEBREW LETTER TAV(ת)之间的字符.我希望以下代码返回"חום",但它会返回"חם".

我想会发生的事情是,默认情况下Perl 6由字形工作,认为是一个字素,并删除所有字符.通过字形工作通常是明智的,但在我的情况下,我需要通过代码点来工作.

我试图找到一个能让它通过codepoint工作但却找不到它的副词.也许在Perl 6中还有一种方法可以使用Unicode属性来排除变音符号,或仅包含字母,但我也找不到.

谢谢!

regex unicode perl6 raku

8
推荐指数
2
解决办法
201
查看次数

如何包含包含所有必需的Perl模块名称的文件?

perl脚本包含脚本开头的所有模块名称.

例如:

use strict;
use XML::Parser;
use XML::Simple;
use DBI;
use DBD::DB2::Constants;
use POSIX qw( strftime );
use Storable qw(dclone);
use Data::Dumper;
use Carp;
Run Code Online (Sandbox Code Playgroud)

如何将所有模块名称保存在另一个文件中并将文件包含在主perl脚本中?

谢谢.

perl perl-module

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

我可以让 Telegram bot 将一些文本放入用户的消息输入框中吗?

我正在构建一个 Telegram bot,用户在其中发送消息,然后将其发布到另一个网站。机器人通常可以给用户一个写什么的建议,但用户必须有机会在实际发布之前编辑这个建议。

我可以将此建议作为消息从机器人发送给用户,用户可以将其复制并粘贴到消息输入框。但是,复制和粘贴有点麻烦,尤其是在触摸设备上。要是能直接把文字放到编辑框中就方便多了。

是否可以?

我现在正在使用Tgfancy库,但我不介意使用另一个具有此功能的库。

谢谢!

telegram-bot

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

如何更改我的存储库分叉的GitHub存储库?

我将名为masteruser/reponame的GitHub存储库分叉到myuser/reponame.当我查看它的页面时,它说:

myuser/reponame,从masteruser/reponame派生

另一个用户将masteruser/reponame分叉到另一个用户/ reponame,它说:

anotheruser/reponame,来自masteruser/reponame

到现在为止还挺好.然后masteruser错误地删除了masteruser/reponame.GitHub管理员非常友好,可以在masteruser发送几封电子邮件后恢复masteruser/reponame,但现在myuser/reponame说:

myuser/reponame,来自anotheruser/reponame

这是有问题的,因为现在另一个用户/地名是拉取请求的默认目的地,每次打开它时都不习惯更改它.我想我可以删除我的fork并创建一个新的,但是有更清洁的方法吗?我在repo管理界面找不到任何相关内容.

谢谢!

git github

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

如何在JavaScript中找出元素的lang属性的计算值?

我有时需要找出HTML lang属性的计算值(元素的语言).我正在使用jQuery.例如,在下面的代码中我想知道<p>元素的计算lang ,我期望值he:

<!DOCTYPE html>
<html lang="en" dir="ltr">
    <head>
        <meta charset="utf-8" />
        <title>lang test</title>
    </head>
    <body>
        <div lang="ar">
            <div lang="he">
                <p>Hallo.</p>
            </div>
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这样做$( 'p' ).attr( 'lang' )的回报什么,可能是因为该<p>元素不具有其自身的lang属性.

这段代码似乎做对了:

 $( 'p' ).closest( '[lang]' ).attr( 'lang' )
Run Code Online (Sandbox Code Playgroud)

这在功能上是否正确?在jQuery,纯JavaScript或其他JavaScript库中有更好的方法吗?

谢谢.

html javascript jquery

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

textarea更改dom事件,可以在不失去焦点的情况下工作,例如使用鼠标进行粘贴

我正在创建一个逐页翻译文本的网页.用户应该填写许多textareas并在完成后按"保存"按钮.默认情况下,保存按钮处于非活动状态,并在按键,键盘和键控时变为活动状态.但是,这并不包括使用鼠标粘贴文本,右键单击并按"粘贴"或通过中键单击(中间点击粘贴在X Windows中很常见)的情况.这种粘贴方案在我创建的网页上相对常见.

"改变"事件会起作用,但只有在textarea失去焦点后才会触发.有没有办法让文本更改时立即触发鼠标粘贴事件?

谢谢!

javascript jquery dom mouseevent

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

Perl函数中的变量在函数外部具有意外值

所以,我是Perl的新手.我正在尝试创建一个递归子例程.逻辑似乎很简单:

sub directory_tree
{
    my $sth = $dbh->prepare("
        SELECT id, org_id, name
        FROM media_directories
        WHERE
            org_id = ?
            AND parent = ?
            AND bucket = ?
    ");
    $sth->bind_param(1, $_[0]);
    $sth->bind_param(2, $_[1]);
    $sth->bind_param(3, 'mfsermons.myflock2.com');
    $sth->execute;

    $result = '';
    while(my($id, $org_id, $name) = $sth->fetchrow_array())
    {
        $result .= "<option value='$id'>$name</option>";  #377
        $result .= directory_tree($org_id, $id);          #378
    }

    return $result;
}

$directory_tree = '<select name="folder">';
$directory_tree .= directory_tree($churchid, 0);
$directory_tree .= '</select>';
Run Code Online (Sandbox Code Playgroud)

为什么当我$result在第377行之后打印它等于预期值时,但是当我在378行打印时,什么都没有出现?不应该.=运算符只是再次运行该函数,然后追加到值?

我最好的猜测是Perl中存在一些我不理解的范围问题,特别是关于$result.然而,对于我的生活,我无法弄清楚出了什么问题,我完全不知道在哪里看!

当我打开错误报告,致命和警告时,不会返回任何内容.我错过了什么可能出错?

recursion perl dbi

3
推荐指数
1
解决办法
165
查看次数

Perl中的表示法 - || =运算符是做什么的?

我碰巧遇到了一个带有以下语法的perl代码.

sub new{
my ($class, $value)=@_;
$lobby ||= bless{
e=>undef;},$class
}
Run Code Online (Sandbox Code Playgroud)

语法||=是什么意思?

我没有把它作为一个关键词,我在perldoc中找不到类似的语法.

perl notation

3
推荐指数
2
解决办法
316
查看次数

如何在Scheme中使用原始表达式找到第6个根?

用原始表达方式,我的意思是+ - * / sqrt,除非有其他我错过了.我想知道如何编写一个Scheme表达式,只使用这些函数找到第6个根.

我知道我可以找到平方根的立方根,但立方根似乎不是原始表达式.

scheme functional-programming racket

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

Perl:qx或Die

简单的任务:

我有一个带线的脚本:

qx(wget -P $destination $file) || die "i can't download file: $file!\n";

但每次(如果成功与否),脚本都会死掉.

我应该如何将其改为成语行为?(成功 - 生活,不 - 死)

感谢帮助!

某些版本:我想知道所有日志,所以我更喜欢使用这样的行:

print qx(...)||die"EXPLAIN";

perl idioms

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