一.复习 看下面一段代码,假如运行结果有问题,那么就需要在每一步计算时,打印一下结果 b = 1 c = 2 d = 3 a = b+c print(a) e = a + d print(e) 执行输出: 36 但是线上的程序,是不允许随便print的,这个时候,就需要用到logging模块 import logging logging.basicConfig(level=logging.DEBUG,filename = 'userinfo.log') b = 1 c = 2 d = 3 a =…
修改全局变量,设立flag来避免线程间数据冲突,低效率版 from threading import Thread import time g_num=0 g_flag = 1 def test1(): global g_num global g_flag if g_flag ==1: for i in range(1000000): g_num += 1 g_flag = 0 print('----test1----g_num=%d'%g_num) def test2(): global g_…
简易版: #!/usr/bin/env python # _*_ coding:UTF-8 _*_ # __auth__:Dahlhin import sys userinfo = r'userinfo.txt' userlock = r'userlock.txt' def user_exist_check(user): '''检查用户是否存在''' with open(userinfo) as fd: for info in fd: if user == info.strip().split(…
一个对象实例可以有自己的属性和方法,当我们调用实例方法时,我们用instance.method()来调用.能不能直接在实例本身上调用呢?在Python中,答案是肯定的. 任何类,只需要定义一个__call__()方法,就可以直接对实例进行调用.请看示例: class Student(object): def __init__(self, name): self.name = name def __call__(self): print('My name is %s.' % self.name)…
import os import time ret = os.fork() # 创建子线程 if ret ==0: # 子进程中返回值为0,父进程>0 while True: print('......1......') time.sleep(1) else: while True: print('......2......') time.sleep(1) 多fork问题,以下代码会出现4个进程 import os import time ret = os.fork() if ret ==0:…
利用函数打印9*9乘法表 def cheng(num): for i in range(1,num+1): for j in range(1,i+1): print('{0} * {1} = {2}'.format(i,j,i*j),end=' ') print('\n',end='') cheng(9)…