我在PyQT4程序中有以下代码用于click处理程序:
def click_btn_get_info(self):
task = self.window.le_task.text()
self.statusBar().showMessage('Getting task info...')
def thread_routine(task_id):
order = self.ae.get_task_info(task_id)
if order:
info_str = "Customer: {email}\nTitle: {title}".format(**order)
self.window.lbl_order_info.setText(info_str)
self.statusBar().showMessage('Done')
else:
self.statusBar().showMessage('Authentication: failed!')
thread = threading.Thread(target=thread_routine, args=(task,))
thread.start()
Run Code Online (Sandbox Code Playgroud)
在线程中使用函数声明函数是一个好习惯吗?
我有以下功能:
void deleteInventory( struct book** inventory )
{
struct book* ptr = NULL;
ptr = *inventory;
while( length != 0)
{
free(ptr);
length--;
++ptr;
}
free(inventory);
}
Run Code Online (Sandbox Code Playgroud)
结构体:
#define MAX_LENGTH 64
#define ISBN_LENGTH 11
struct book
{
char isbn[ISBN_LENGTH];
char title[MAX_LENGTH];
char author[MAX_LENGTH];
int year;
float price;
};
Run Code Online (Sandbox Code Playgroud)
结构的总大小:147字节(11 + 64 + 64 + 4 + 4)sizeof(结构书)返回:148字节
我的库存变量是结构数组,包含3条记录
现在,在函数中调试的结果(地址没有高2字节):
inventory[0] = 0x1350
inventory[1] = 0x14e0
inventory[2] = 0x1670
Run Code Online (Sandbox Code Playgroud)
内存差异:400字节,好的
在第一次迭代时一切正常,首先记录删除没有问题
但是之后
++ptr;
Run Code Online (Sandbox Code Playgroud)
ptr将包含:0x13e4
inventory [0] - …
有人知道python的字典'get(key)'方法的O(?)是什么?
我已经使用cProfile模块对其进行了测试,并获得了字典中100,1000,10000,100000,1000000,100000000条记录的相同时间结果.
这是否意味着python的字典为任何密钥提供O(1)访问时间?
我有个问题.我需要编写一个bash脚本,它将在给定的路径中找到所有文件和目录,并显示一些有关结果的信息.允许时间:30秒.
#!/bin/bash
DIRS=0
FILES=0
OLD_FILES=0
LARGE_FILES=0
TMP_FILES=0
EXE_FILES=0
IMG_FILES=0
SYM_LINKS=0
TOTAL_BYTES=0
#YEAR_AGO=$(date -d "now - 1 year" +%s)
#SECONDS_IN_YEAR=31536000
function check_dir {
for entry in "$1"/*
do
if [ -d "$entry" ]; then
((DIRS+=1))
check_dir "$entry"
else if [ -f "$entry" ]; then
((FILES+=1))
#SIZE=$(stat -c%s "$entry")
#((TOTAL_BYTES+=SIZE))
#CREATE_DATE=$(date -r "$entry" +%s)
#CREATE_DATE=$(stat -c%W "$entry")
#DIFF=$((CREATE_DATE-YEAR_AGO))
#if [ $DIFF -ge $SECONDS_IN_YEAR ]; then
# ((OLD_FILES+=1))
#fi
fi
fi
done
}
if [ $# -ne 2 ]; then
echo "Usage: ./srpt …Run Code Online (Sandbox Code Playgroud) 在使用PyDev的Eclipse中,我可以在PyDev编辑器中设置首选项,以在保存时在分配关键字参数,括号和运算符之前和之后添加空格。例:
def create_socket(HOST):
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect((HOST,80))
return sock
Run Code Online (Sandbox Code Playgroud)
Ctrl + S之后的代码如下所示:
def create_socket( HOST ):
sock = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
sock.connect( ( HOST, 80 ) )
return sock
Run Code Online (Sandbox Code Playgroud)
PyCharm可以做同样的事情吗?