我正在编写批处理(.bat)脚本,我需要处理删除文件夹失败的情况.我正在使用%errorlevel%捕获退出代码,但在rd命令的情况下它似乎不起作用:
C:\Users\edo\Desktop>rd testdir
Directory is not empty
C:\Users\edo\Desktop>echo %errorlevel%
0
Run Code Online (Sandbox Code Playgroud)
为什么?你有什么建议?
我知道如果你想为一个类实例添加一个方法,你不能像这样做一个简单的赋值:
>>> def print_var(self): # method to be added
print(self.var)
>>> class MyClass:
var = 5
>>> c = MyClass()
>>> c.print_var = print_var
Run Code Online (Sandbox Code Playgroud)
这确实会导致print_var行为像正常的函数,所以self参数不具有他的典型含义:
>>> c.print_var
<function print_var at 0x98e86ec>
>>> c.print_var()
Traceback (most recent call last):
File "<pyshell#149>", line 1, in <module>
c.print_var()
TypeError: print_var() takes exactly 1 argument (0 given)
Run Code Online (Sandbox Code Playgroud)
为了让函数被认为是一个方法(即将它绑定到实例),我曾经使用过这段代码:
>>> import types
>>> c.print_var = types.MethodType(print_var, c)
>>> c.print_var
<bound method MyClass.print_var of <__main__.MyClass object at 0x98a1bac>>
>>> c.print_var()
5
Run Code Online (Sandbox Code Playgroud)
但我发现它 …
我需要生成给定整数的所有分区.
我发现Jerome Kelleher的这个算法对它来说是最有效的算法:
def accelAsc(n):
a = [0 for i in range(n + 1)]
k = 1
a[0] = 0
y = n - 1
while k != 0:
x = a[k - 1] + 1
k -= 1
while 2*x <= y:
a[k] = x
y -= x
k += 1
l = k + 1
while x <= y:
a[k] = x
a[l] = y
yield a[:k + 2]
x += 1
y -= 1
a[k] …Run Code Online (Sandbox Code Playgroud) 我需要从一个可变长度的字符串中提取一个8字节的摘要,所以我正在寻找一个我将在c/c ++中实现的算法.这将是微控制器上数字签名程序的一部分,因此它必须是:
我看了一下现有的算法,比如crc64,但它们对我的平台来说似乎太重了.
在XI知道你可以得到一个窗口的几何形状xwininfo.
不幸的是,如果我从gnome-terminal中检索这样的几何体并使用它来启动另一个gnome-terminal --geometry ...,那么两个窗口的顶部和左边都不匹配.
实际上,新航站楼的东南移动了旧航站楼窗户装饰的宽度和高度.
如何启动与第一个完全重叠的新终端?
我的数据库中有一个存储过程,它返回表中的所有记录:
CREATE PROCEDURE showAll()
BEGIN
SELECT * FROM myTable;
END
Run Code Online (Sandbox Code Playgroud)
SP的工作方式与预期一致.但是,如果我在php脚本中调用它,然后我尝试再次查询数据库,它总是失败:
// $mysqli is a db connection
// first query:
if (!$t = $mysqli->query("call showAll()"))
die('Error in the 1st query');
while ($r = $t->fetch_row()) {
echo $r[0] . "<br>"; // this is ok
}
$t->free(); // EDIT (this doesn't help anyway)
// second query (does the same thing):
if (!$t = $mysqli->query("SELECT * from myTable"))
die('Error in the 2nd query'); // I always get this error
while ($r = $t->fetch_row()) …Run Code Online (Sandbox Code Playgroud)
我有一系列的values(L,R,U,D)和两个变量,d并且newd包含其中一个变量.我需要检查是否d和newd相同的子集(L,R或U,D).
我知道我可以这样做:
d in {'L','R'} and newd in {'U','D'} or d in {'U','D'} and newd in {'L','R'}
Run Code Online (Sandbox Code Playgroud)
这确实是返回False,如果它们都具有值L,R或U,D和True其他.尽管如此,我觉得它还有很多.关于更干燥方法的一些建议?
我有一个字符串数组,我需要根据数组的大小将其附加到电子表格中,从第一列到第n列.
字符串可以表示几种类型的值,例如数字,日期等,因此必须在用户输入时将它们放在工作表中以保持其含义.
据我所知,Google API提供了两种附加值的方法,但它们似乎都不适合这种情况.这是我遇到的问题:
这种方法的问题是我无法找到一种方法来设置用户输入的值.这是一个代码示例:
// Build the CellData array
$values = array();
foreach( $ary_values AS $d ) {
$cellData = new Google_Service_Sheets_CellData();
$value = new Google_Service_Sheets_ExtendedValue();
$value->setStringValue($d);
$cellData->setUserEnteredValue($value);
$values[] = $cellData;
}
// Build the RowData
$rowData = new Google_Service_Sheets_RowData();
$rowData->setValues($values);
// Prepare the request
$append_request = new Google_Service_Sheets_AppendCellsRequest();
$append_request->setSheetId(0);
$append_request->setRows($rowData);
$append_request->setFields('userEnteredValue');
// Set the request
$request = new Google_Service_Sheets_Request();
$request->setAppendCells($append_request);
Run Code Online (Sandbox Code Playgroud)
(完整的工作代码在这里)
即使使用CellData.setUserEnteredValue时,数据被解释为字符串,因为一个具有使用设置值ExtendedValue.setStringValue(或其他支持的方法,即setBoolValue,setFormulaValue,setNumberValue).
在 JavaScript 中,可以通过 获取传递给函数的参数列表arguments,这是一个类似数组的对象:
>> function fun(a, b, c) { console.log(arguments) };
undefined
>> fun(1, 2, 3);
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
有没有办法获得一个包含每个参数的正式名称的对象?
也就是说,如果调用上述函数,他应该得到:
{a = 1, b = 2, c = 3}
Run Code Online (Sandbox Code Playgroud) 我有这个python代码,它将几个lambda函数放在一个字典中:
dictfun = dict()
for txt in ("a", "b", "c"):
dictfun[txt] = lambda: "function " + txt
Run Code Online (Sandbox Code Playgroud)
这些函数只返回一个字符串,其中包含调用它们的参数.
我希望看到像function afor dictfun["a"](),function bfor dictfun["b"]()等的输出,但这就是我得到的:
>>> dictfun["a"]()
'function c'
>>> dictfun["b"]()
'function c'
>>> dictfun["c"]()
'function c'
Run Code Online (Sandbox Code Playgroud)
它们似乎都评估txt到它设置的最后一个值,即它的当前值.总之,变量不会关闭到lambdas中.我甚至可以这样做:
>>> txt = "a"
>>> dictfun["c"]()
'function a'
Run Code Online (Sandbox Code Playgroud)
我如何才能关闭txtlambda函数以获得预期的输出?
python ×4
php ×2
arguments ×1
batch-file ×1
c ×1
c++ ×1
closures ×1
cmd ×1
coding-style ×1
descriptor ×1
digest ×1
dry ×1
exit-code ×1
hash ×1
javascript ×1
lambda ×1
methods ×1
mysqli ×1
performance ×1
python-3.x ×1
windows ×1
x11 ×1