小编ssh*_*sky的帖子

如何在Python中使字典只读

我有一个类:

class A:
    def __init__(self):
        self.data = {}
Run Code Online (Sandbox Code Playgroud)

在某些时刻我想禁止self.data字段修改.

我已阅读PEP-416拒绝通知,有很多方法可以做到这一点.所以我想找到它们是什么.

我试过这个:

a = A()
a.data = types.MappingProxyType(a.data)
Run Code Online (Sandbox Code Playgroud)

这应该工作,但首先,它的python3.3 +和第二,当我这样做"禁止"多次我得到这个:

>>> a.data = types.MappingProxyType(a.data)
>>> a.data = types.MappingProxyType(a.data)
>>> a.data
mappingproxy(mappingproxy({}))
Run Code Online (Sandbox Code Playgroud)

虽然如果mappingproxy({})我要"禁止"很多次,那会好得多.检查isinstance(MappingProxyType)是一个选项,但我认为可以存在其他选项.

谢谢

python dictionary

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

在Qt中检查QObject派生类类型的正确方法

可以说我有两个班:

class A : public QObject {};
class B : public QObject {};
Run Code Online (Sandbox Code Playgroud)

那我去

QObject *a = new A();
QObject *b = new B();
Run Code Online (Sandbox Code Playgroud)

现在,我如何确保"a"是A类的实例,而"b"是B类的实例?

目前我这样做:

if (a->inherits(A::staticMetaObject.className())) {
...
} else if (a->inherits(A::staticMetaObject.className())) {
...
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

qt types qobject

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

从pdf中删除一些图像和文本对象

我有一个带有图像和大量文本的pdf页面对象.

我想删除该图像并根据其内容删除一些文本对象.那就是我想获取所有文本对象的内容,如果满足条件则删除其中的一些内容.

我怎么能用PyPDF2做到这一点(文档很差)?或者是否有另一个允许这样做的图书馆?

谢谢

python pdf pypdf

6
推荐指数
1
解决办法
1219
查看次数

如何检查生成文件中目标的存在

我想根据当前目录中的默认 makefile 是否包含某个目标在 shell 中运行某些操作。

#!/bin/sh
make -q some_target
if test $? -le 1 ; then
    true # do something
else
    false # do something else     
fi
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为如果目标不存在,GNU make 会返回错误代码 2,否则返回 0 或 1。问题是没有以这种方式记录。这是男人的一部分:

-q, --question
        ``Question mode''.  Do not run any commands,  or  print  anything;
        just  return  an exit status that is zero if the specified targets
        are already up to date, nonzero otherwise.
Run Code Online (Sandbox Code Playgroud)

仅区分零/非零。这样做的正确方法是什么?

makefile gnu-make

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

检查两个日期间隔是否相交

我需要检查MySQL以查看两个日期间隔是否相交.为了更好地解释我的问题:我有一个事件管理模块.如果我们有一个像这样添加的事件:

开始日期 : '2013-09-09 08:00:00'

结束日期 : '2013-09-09 10:00:00'

现在我想添加另一个像这样的事件:

案例A:

开始日期 : '2013-09-09 09:00:00'

结束日期 : '2013-09-09 11:00:00'

或者像这样:

案例B:

开始日期 : '2013-09-09 07:00:00'

结束日期 : '2013-09-09 12:00:00'

我不应该这样做,因为在该时间间隔内已经添加了一个事件(08-10)

对于第一个例子(case A),我通过这样做解决了这个问题:

SELECT * FROM `events` as e 
    where 
    '2013-09-09 08:00:00' between e.ev_date_start and e.ev_date_end -- date start
    OR
    '2013-09-09 11:00:00' between e.ev_date_start and e.ev_date_end -- date end
Run Code Online (Sandbox Code Playgroud)

但对于第二种情况(case B),我很难搞清楚......

mysql sql select

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

分割2个32位有符号整数的最短方法是什么?

我有两个32位有符号整数EAXEBX分别.如果我做:

xor EDX, EDX
idiv EBX
Run Code Online (Sandbox Code Playgroud)

然后,EAX被视为无符号32位,这是错误的.MOVSX似乎无法将唱歌点扩展EAXEDX:EAX.我也试着玩CMPSBC,但我没能找到解决的办法.

我想知道最短的代码,或者至少是避免跳转的代码.

x86 assembly

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

标签 统计

python ×2

assembly ×1

dictionary ×1

gnu-make ×1

makefile ×1

mysql ×1

pdf ×1

pypdf ×1

qobject ×1

qt ×1

select ×1

sql ×1

types ×1

x86 ×1