小编xto*_*ofl的帖子

使用引发异常的 lambda 过滤列表

使用psutil我得到一个进程列表;我想过滤掉那些具有特定名称的人。

filter(lambda p: p.name()=="x", psutil.process_iter())
Run Code Online (Sandbox Code Playgroud)

但是,该psutil.Process.name()函数可能会抛出...在这种情况下filter会受到打击,并向我重新引发异常。

是否有一种filter_noexception函数/习惯用法,或者我需要p.name()自己将其包装到异常吞没函数中?

python exception filter

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

谁在乎...只要结果还可以?

我对有些问题的反应感到震惊,这些问题指出开发人员更关心产生的编译字节而不是代码的含义.我倾向于选择后缀/前缀增量,因为我倾向于选择使用带有两个值的枚举类型的布尔值,以及关于正确的函数命名,以及......

所以这个问题更像是一个反复的民意调查:什么时候允许忽视一个人写的语义?边界线在哪里?

  • operator ++(后缀/前缀)
  • string.empty()与string ==""
  • vector.empty()与vector.size()== 0
  • 枚举{on,off} vs. boolean on = true; 关=假
  • ...

说出来.

编辑 -

我并不是要质疑(微观)优化的必要性.更确切地说,我想要了解你应该如何清楚自己所写的内容,以及"但是无论如何它都会编译为dword"这样的陈述,那么我为什么要把它作为一个枚举呢?(这是一个极端的情况......).

language-agnostic semantics

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

声明函数对象进行比较?

我见过其他人的问题,但没有发现适用于我在这里尝试实现的目标。

我正在尝试使用 std::sort 和一个通过我的 EntityManager 类对实体进行排序 std::vector<Entity *>

/*Entity.h*/
class Entity
{
public:
 float x,y;
};

struct compareByX{
 bool operator()(const GameEntity &a, const GameEntity &b)
 {
  return (a.x < b.x);
 }
};   
   
/*Class EntityManager that uses  Entitiy*/

typedef std::vector<Entity *> ENTITY_VECTOR; //Entity reference vector
   
class EntityManager: public Entity
{
private:
 ENTITY_VECTOR managedEntities;

public:
 void sortEntitiesX();
};

void EntityManager::sortEntitiesX()
{
 
 /*perform sorting of the entitiesList by their X value*/
 compareByX comparer;
 
 std::sort(entityList.begin(), entityList.end(), comparer);
}
Run Code Online (Sandbox Code Playgroud)

我收到了十几个错误,比如

: error: no match for …
Run Code Online (Sandbox Code Playgroud)

c++ operators function-object operator-keyword

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

维护一个比内存大的排序列表

我有一个元组列表.

[
  "Bob": 3,
  "Alice": 2,
  "Jane": 1,
]
Run Code Online (Sandbox Code Playgroud)

递增计数时

 "Alice" += 2
Run Code Online (Sandbox Code Playgroud)

订单应该保持:

[
  "Alice": 4,
  "Bob": 3,
  "Jane": 1,
]
Run Code Online (Sandbox Code Playgroud)

当所有内容都在内存中时,有效的方法(更多或更少)可以有效地实现这一点.(使用索引,插入排序等)问题是:当列表不适合内存,最有希望的方法是什么.

奖金问题:即使指数不适合内存,该怎么办?

你会怎么做?

memory sorting algorithm

4
推荐指数
2
解决办法
739
查看次数

zk:什么时候创建widget子元素?

首先:我对zk很新.我尝试创建一个可以进行大量客户端处理的组件(想想图像编辑).因此,我想创建一个窗口小部件,在"构建时"创建自己的子窗口小部件.

但是虽然我确实找到了很多关于如何实例化小部件的文档,但我没有找到关于何时进行操作的提示.换一种说法:

ZK如何调用我的小部件,我应该在我的小部件javascript中覆盖哪些方法来生成子节点?

widget zk

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

Inno Setup:如何在#error 指令消息中扩展预处理器变量

我有一个 Inno Setup 脚本,它查找文件作为预处理器步骤:

#define a_path GetEnv("INSTALLER_FILES")
#define install_file FindFirst(a_path + "\pattern*.*")
Run Code Online (Sandbox Code Playgroud)

install_file找不到时,我想发出一个错误:

#if install_file == 0
    #error No installer found at {#a_path}
#endif
Run Code Online (Sandbox Code Playgroud)

但是 ISPP 只在编译时写入文字源代码行:

script.iss: [ISPP] 在 {#a_path} 找不到安装程序

是否可以在#error指令中扩展预处理器变量?

preprocessor inno-setup

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

依赖注入与控制反转 - 术语

在函数式编程中,函数被视为实体,并且可以在对象在OO上下文中传递.

在某种程度上,可以使用某些参数"调用"该函数.

我想知道:这也叫做依赖注入吗?

而且:DI的使用会导致控制反转吗?

functional-programming dependency-injection terminology

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

扔什么样的例外?

这个问题可能听起来有点愚蠢,但在这里.

我有两个可以随时调用的函数.第一个函数拍摄快照,第二个函数分析从该快照获取的数据.当然,如果用户在获取快照之前尝试分析快照,我的应用程序应该抛出异常.我知道ArgumentOutOfRangeException,当......存在无效的争论时,通常会抛出这种情况,但实际情况并非如此.这种情况是否有任何内置异常,或者我必须使用ArgumentOutOfRangeException

谢谢

.net c# vb.net exception-handling exception

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

php:日期时算术

DateInterval对PHP类有点困惑.我真正想要的是两枚DateTime邮票之间经过的秒数.

$t1 = new DateTime( "20100101T1200" );
$t2 = new DateTime( "20100101T1201" );
// number of seconds between t1 and t2 should be 60

echo "difference in seconds: ".$t1->diff($t2)->format("%s");
Run Code Online (Sandbox Code Playgroud)

然而,我得到的只是零.是DateInterval不适合算术课吗?如何我得到的秒两个时间戳之间的"精确"号(或小时,或其他)?

php datetime

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

我可以在不需要其toString()方法的情况下编写两个文件路径吗?

想象一下,我有一个"基础"路径对象,表示一个目录,一个"相对"路径对象表示基础内的某个文件.

我希望代码看起来有点像

AbsolutePath base = new AbsolutePath("/tmp/adirectory");
RelativePath relativeFilePath = new RelativePath("filex.txt");
AbsolutePath absoluteFile = base.append( relativeFilePath );
Run Code Online (Sandbox Code Playgroud)

但是在Java API(我还不太清楚)中,我发现只有File,我才能做到最好

File base = new File("/tmp/adirectory");
File relativeFilePath = new File("filex.txt");
File absoluteFile = base.toString() 
                  + File.separator 
                  + relativeFilePath.toString();
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

java directory file path

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