老师你好,第一行是在time模块中导入time方法,第二行直接是导入time方法,他们有什么不同呢?
我图中的4,12,13行和5,11行都有啥区别,同样都是记录运算时间的?
为什么我把第二行注释掉就引用不了time.clock这个方法呢,第一行按道理来说应该也是可以识别出来的?
老师这个正则表达式里面除了 "."可以匹配任意一个字符以外 其他的符号是不是都要满足表示符的定义
import time def pcl (func): file=open("log.txt","a",encoding="utf-8") file.write(func.__name__) file.write(time.asctime()) file.write("\n") file.close() def funcout(func): def funcin(): #新增功能 pcl(func) func() return(funcin) def func1(): pcl(func1) print("1") def func2(): pcl(func2) print("2") func1=funcout(func1) func1() func2()
老师请问 funcin() 的括号里为什么不用加参数了
import sys class AA(): # 创建对象开辟内存时调用 def __new__(cls, *args, **kwargs): print('开辟内存空间') return super(AA, cls).__new__(cls) # 初始化方法 def __init__(self): print('创建对象at:%s' % hex(id(self))) # 对象被系统回收之前调用该方法 def __del__(self): print('%s say bye bye' % hex(id(self))) def test1(aaa): print('aaa') print('a的引用计数为:%d' % sys.getrefcount(a)) a = AA() print('a的引用计数为:%d' % sys.getrefcount(a)) b = a print('a的引用计数为:%d' % sys.getrefcount(a)) list1 = [a] print('a的引用计数为:%d' % sys.getrefcount(a)) test1(a) print('a的引用计数为:%d' % sys.getrefcount(a)) print('-'*50) b = 100 print('a的引用计数为:%d' % sys.getrefcount(a)) list1.remove(a) print('a的引用计数为:%d' % sys.getrefcount(a)) print('-'*20+'程序结束'+'-'*20)
老师,这个后面好几个引用a的,这里函数的执行顺序有点理不清了,麻烦老师讲解一下
老师,这里16行执行之后为什么直接得到20行的返回值呢
class AAA(): def __init__(self,func): # print("我是AAA.init()") self.__func=func # TypeError: 'AAA' object is not callable def __call__(self, *args, **kwargs): self.addFunc() self.__func() def addFunc(self): print("用户权限验证") print("日志系统处理") @AAA # TypeError: __init__() takes 1 positional argument but 2 were given # test1=AAA(test1) def test1(): print("我是功能1") test1()
请问老师,这个__call__是干嘛的
pattern = r'.*er\B' s = '123 oaerp' v = re.match(pattern, s) print(v)
老师,问一下这里\B是匹配边界不是'er'的,为什么运行结果输出的时候直到'er',而后面的'p'却不输出
def funcOut(num1): def funcIn(num2): # 如果想要修改外部函数的变量。可以声明一下外部函数的变量 # 如果在内部函数中需要修改外部函数中的变量,需要使用nonlocal声明 nonlocal num1 num1+=1 # num1+=1 如果使用了外部的函数变量就会抛异常,所以需要在前面定义nonlocal return num2+num1# 只能是内部的函数使用外部的函数变量 return funcIn# 外部函数一定要有返回值,返回内部函数的名字 a=10 b=20 funcIn=funcOut(a) print(type(funcIn)) result=funcIn(b) print(result) result=funcIn(100) print(result)
funcIn=funcOut(a)
老师,这个funcIn我可以理解他既是变量也是内部函数吗?
老师,我用带yield的函数做生成器一运行就出问题,这是为什么呢?
import time # 定义一个记录日志的函数:将访问事件以及访问的函数名写入到文件中(log.txt) def writeLog(func): try: file = open('log.txt', 'a', encoding='utf-8') # 写入相关数据信息(访问的函数名,访问的时间) file.write(func.__name__) file.write('\t') # 写入访问时间 file.writ(time.asctime()) file.write('\n') except Exception as e: print(e.args) finally: # 关闭文件 file.close() # 闭包 def funcOut(func): def funcIn(): # 新增功能 writeLog(func) func() return funcIn def func1(): print('我是功能1') def func2(): print('我是功能2') # 闭包的调用 func1 = funcOut(func1) func2 = funcOut(func2) func1() func2()
老师,我这个代码有什么问题吗?为什么我运行之后控制台是这种结果,log.txt文件里面也只有func1和func2没有时间
#pattern = r'.*\ber' #匹配左边界 #pattern = r'.*er\b' #匹配右边界 #s = '123,eroa' #s = '123,oaer' #v = re.match(pattern,s) #print(v) #匹配单词边界\B pattern = r'.*\Ber' #匹配左边界 #pattern = r'.*er\B' #匹配右边界 s = '123,peroa' #s = '123,oaer' v = re.match(pattern,s) print(v)
我不太明白对单词边界的匹配,为什么\b会到er就结束,\B到per也就结束了,不应该是左边界朝后都是的吗
老师您好,这里不应该是先输出创建对象为1之后再结束吗?为什么会这样
老师这个能生成的也太大了吧,是操作出问题了吗?
s = "<html><h1>我是一号分组</h1></html>" text = r"<(?P<key1>.+)><(?P<key2>.+)>.+</(?P=key2)></(?P=key1)>" v = re.match(text, s) print(v.groups()[1])
老师您好,请问这个用groups查询的时候只能查询2个啊?不是一共有4个都加了括号的吗?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637