list1 = [-2,1,2,8,-5,-8,6,4]
result1 =sorted(list1,key=lambda x:(x<0,abs(x)),reverse=True)
问题:当reverse是False的时候,负数排列都是在右边的,但是reverse是True时,负数排列在左边,为啥?老师
class Person: def __init__(self, name): self.name = name def say(self): print('说话') p1 = Person('人') @classmethod #方法二 def eat(cls): print("类方法") Person.eat = eat Person.say = say # 方法一 p1.say() Person.say(Person) p1.eat() Person.eat()
请教老师 方法一中的添加的类方法和方法二中的添加类的方法有啥区别,
实例方法不是应该是所有对象共享的代码吗。如何添加所有 实例对象共享的实例方法
老师,关于这行代码bookName到底是怎么运作的呢?或者顺序是先执行什么,在执行什么呢?这里还是有点懵懂,如果我把bookName=funcOut(bookName)改成a1=funcOut(bookName),输出结果是西游记,没有括号,这是为什么呢?还有一个问题bookName=funcOut(bookName)为什么不能写成bookName()=funcOut(bookName)?
def funcOut(func): def funcIn(): return '《'+func()+'》' return funcIn def bookName(): return '西游记' bookName= funcOut(bookName) print(bookName())
1、
time.clock()报错
''' 生成器(genterator):记录一个算法,可以一边循环,一边计算的一种机制 生成器的作用: 存储1-10000中所有的偶数 1.list 列表推导公式 更加耗时 更加消耗内存 2.生成器 存储数据(存储算法) 使用生成器的好处 1.时间快 2.内存开销小 使用生成器 创建生成器:1. (x for x in range(10)) ''' #导入时间模块,系统模块 import time,sys time.clock() g1 = (x for x in range(2,1000001,2)) costTime1 = time.clock() print('创建生成器耗时:%g'%costTime1) print('创建生成器内存消耗:%d'%sys.getsizeof(g1))
老师我不太懂这个wraps函数的意义在哪? 因为既然我用了闭包和装饰器,我一定是想在不修改源码的情况下进行增加新功能从而改变结果。然后现在是我在用了闭包和装饰器的前提下,又添加了wraps函数,把结果又变回去了?
而且这个函数是用在将原函数对象的指定属性复制给包装函数对象,是不是意思基本就只能在闭包中使用?
我是学员姜兴涛,刚才的问题已经解决了,不好意思,添麻烦了。我把闭包的返回名称写成方法了,多加了一个括号。已经改过来了。
代码和视频的一样,报错了?
import time def writelog(fun): try: file = open("log.txt","a",encoding="utf-8")#a代表追加的意思,避免新文件进行覆盖 #写入相关数据信息(访问的函数名,访问的时间) file.write(fun.__name__) file.write("\t")#制表符 #写入时间 file.write(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 fun1(): print("我是功能1") def fun2(): print("我是功能2") #闭包的调用,不修改源码的情况下调用了日志功能 fun1 = funcout(fun1) fun2 = funcout(fun2) fun1() fun2()
def __new__(cls, *args, **kwargs): print("new") return super(AA,cls).__new__(cls)
老师,这个new的含义我还是没懂,必须有个返回值吗,返回的是父类的什么
re v = re.split(, ) (v)
老师,
r',|-|:'
这个最后为什么要加':'呢,前面为什么没有':’呢
用sum()函数求数列的和不是更简单吗?
想请教一下老师,关于生成器和迭代器的区别,个人理解的部分是否正确?(1)序列具有可迭代性,(2)生成器和迭代器都是可迭代对象,(3)所有的生成器都是迭代器,而所有的迭代器却不一定生成器(4)个人理解:生成器是一种逻辑表达,就像生产图纸,它是一种惰性计算,不预算,不预存,序列长度未知,直到最后一个报错为止 迭代器是不是已经预先保存所有迭代的地址,它是已经生成的吗?已经存在的吗?序列长度也是已知的吗? 简单说迭代器是已经计算完成并保存了,因为已经实体(所有迭代的内存地址)已经存在?内容和长度是已知的, 而生成器是完成了一个计算公式,因此实体(需要一个就通过公式获取一个)不存在,内容和长度是未知的?
老师你好:
我有点疑问,感觉是对的,又不敢确定,向老师求证
老师你好,
我简化了一下老师的说法,
不知道对不对,向老师求证一下
3、 a)简单说就是重新赋值调用,把调用导向闭包的外部函数,然后闭包的内部函数(或先或后)执行完新任务, b)由于原来要调用的函数,被当成参数传递了进来,所以闭包外部函数的参数被调用时,等于是把原本应该执行的调用执行了一下 c)这样就可以不改变别人的代码,插入自己的新任务,又能执行原本的任务、
为什么找不到math 模块,没有创建相同名的文件
老师我这个python版本用time.clock()显示报错,要用time.process_time()吗?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637