我正在尝试对我的python代码执行良好的输入有效性检查,但我也希望它简洁.也就是说,我不想要的解决方案就是这个:
def some_func(int_arg, str_arg, other_arg):
try:
int_arg = int(int_arg)
except TypeError, ValueError
logging.error("int_arg must respond to int()")
raise TypeError
try:
if str_arg is not None:
str_arg = str(str_arg)
except TypeError
logging.error("Okay, I'm pretty sure this isn't possible, bad example")
raise TypeError
if other_arg not in (VALUE1, VALUE2, VALUE3):
logging.error("other arg must be VALUE1, VALUE2, or VALUE3")
raise TypeError
Run Code Online (Sandbox Code Playgroud)
这只是太多的代码和很多空间,只需要检查3个参数.
我目前的做法是:
def some_func(int_arg, str_arg, other_arg):
try:
int_arg = int(int_arg) #int_arg must be an integer
str_arg is None or str_arg …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个可读文件流,我可以从中读取单个字节。我正在使用下面的代码。
var rs = fs.createReadStream(file).on('open', function() {
var buff = rs.read(8); //Read first 8 bytes
console.log(buff);
});
Run Code Online (Sandbox Code Playgroud)
给定该文件是至少8个字节的现有文件,为什么我得到的输出为“ null”?
我正在尝试使用批处理脚本删除一些基于正则表达式的文件.我有的是:
FOR /f "tokens=*" %%a in ('dir /b | findstr MY_REGEX_HERE') DO ECHO %%a
Run Code Online (Sandbox Code Playgroud)
我知道我的内部命令可以单独工作,给我目录列表,但是当我将它嵌入到for循环中时,我得到一个错误| was unexpected at this time. 在FOR循环命令中不允许使用管道?或者我需要逃避它或什么?
任何有关如何做到这一点的帮助都会很棒.
我以前见过它的一个例子,但我从来没有找到任何好的参考资料来处理它.我知道可以传入几个参数,例如,通过将方法定义为
public void aMethod(int...a)
Run Code Online (Sandbox Code Playgroud)
但我不知道有什么比这更重要的了.我见过一个例子,它返回了通过的平均值.
这是传递参数的过时方式吗?使用它甚至可以接受吗?这样做时的语法究竟是什么?(一些参考资料会很棒)
我正在尝试使用pickle来保存自定义类; 与下面的代码非常相似的东西(虽然在类上定义了一些方法,还有几个dicts等数据).但是,通常当我运行它,pickle然后unpickle时,我会丢失类中的所有数据,并且就好像我创建了一个新的空白实例.
import pickle
class MyClass:
VERSION = 1
some_data = {}
more_data = set()
def save(self,filename):
with open(filename, 'wb') as f:
p = pickle.Pickler(f)
p.dump(self)
def load(filename):
with open(filename,'rb') as ifile:
u = pickle.Unpickler(ifile)
obj = u.load()
return obj
Run Code Online (Sandbox Code Playgroud)
我想知道这是否与泡菜类的备忘录有关,但我觉得不应该这样做.当它不起作用时,我会查看我生成的文件,它看起来像这样:(显然不是可读的,但它显然不包含数据)
€c__main__ MyClass q
无论如何,我希望这足以让某人了解这里可能会发生什么,或者看什么.
python ×2
assert ×1
batch-file ×1
findstr ×1
java ×1
node.js ×1
parameters ×1
pickle ×1
stream ×1
validation ×1
windows ×1