
python
文章平均质量分 68
谭亮亮coding
喜欢跑马拉松的程序员。博客:
leetcode主页:https://leetcode.cn/u/ttkltll/
简书: www.jianshu.com/u/1c055bb2a2c5
豆瓣: www.douban.com/people/97001041/
展开
-
用chatgpt重构代码,优化代码,体验蛮惊艳
整个过程体验很震惊,chatgpt有无限可能。原创 2023-02-15 16:57:48 · 13785 阅读 · 0 评论 -
研究python解释器(3)-杂记
python虚拟机原创 2022-10-18 11:59:32 · 284 阅读 · 0 评论 -
研究python解释器(2)-生成器,协程背后的运行机制
生成器,协和背后的运行机制原创 2022-10-06 15:09:28 · 602 阅读 · 0 评论 -
研究python解释器(1)-python名字空间
python源码原创 2022-09-09 09:21:33 · 481 阅读 · 0 评论 -
python动态属性的应用场景
这篇文章讨论下面两个问题:1:getattr(),setattr()它是用于解决什么问题的,它的应用场景是什么?背后的设计思想是什么?2:a.,以及dir(a)的区别是?先说第一个,getattr(obj, var),这种写法相比obj.fun,它有哪些优点呢?在下面几种情况下用getattr(),setattr():1:你不知道对象的属性名的时候,比如你要向对象所有的属性添加值。上面是对对象所有属性赋值,你不需要知道每个属性值。也更适合批量化操作。.........原创 2022-08-03 08:50:21 · 268 阅读 · 0 评论 -
阅读flask源码3:仿写Local,LocalStack
我们上篇分析了上下文压入栈,出栈的大致流程,现在我们要问,flask是怎么实现的呢?准备来说,Local是怎么管理不同请求对象的,LocalProxy是怎么代理的。因为flask源码太复杂,今天我们自己一步一步实现类似于Local,LocalProxy的代码。通过自己实现,我们学会用代理模式,学会python的魔法方法__setattr__,getattr。class A(object): def spam(self, x): print('A.spam') def foo原创 2020-06-04 09:57:56 · 262 阅读 · 0 评论 -
阅读flask源码2:Local,LocalStack
我们还是以flask0.1的代码来阅读,先提出几个常见的问题:1上下文是怎么被压入栈的?2为什么在不同的程序中通过相同的变量request可以拿到对应的请求我们先看第一个问题:上下文是怎么被压入栈的?服务器传过来的请求参数,被封装成了一个_RequestContext对象,这个对象里有这个请求相关联的一组互相“绑架”的参数,它们组成一个上下文环境。比如request,被实例化的app。如下:class _RequestContext(object): def __init__(s原创 2020-06-04 09:57:06 · 295 阅读 · 0 评论 -
阅读flask源码1:flask请求流程
我们先大致的走下flask处理请求的流程,我用的是flask0.1这个版本的源码。之所以用这个,是为了去除不必要枝叶,快速把握flask的主干。后面再迭代,加细节。from flask import Flask, Request, request, session, flash, abort, _request_ctx_stackfrom user import webapp = Flask(__name__)web.register(app)#下面会注册路由:@app.route(.原创 2020-06-04 09:56:07 · 360 阅读 · 0 评论 -
《流畅的python》阅读笔记3:让代码更抽象
注释:下面代码演示了如何让代码更抽象,更有应对变化的可能。下面(1)(2)(3)(4)(5)都是被否定的写法,也是一些初学者容易写出的代码。class Vector2d(): def __init__(self, x, y): self.x = x self.y = y def __iter__(self): #return iter(tuple(self.x, self.y)) (1) #这里可以改成用生成.原创 2020-06-04 09:54:30 · 259 阅读 · 0 评论 -
《流畅的python》阅读笔记2:切片及原理
1:什么场景下我们会用到切片?2:实现切片的原理,基于此,我们如何实现一个支持切片操作的自定义类型?下面说下什么场景下我们会用到切片?当我们想截取一段代码,怎样操作呢?比如下面:list = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]array1 = array('d', list)components = reprlib.repr(array1)# 这个时候返回字符串:“array('d', [0.0, 1.0, 2.0, 3.0, 4.0, ...]原创 2020-06-04 09:53:20 · 265 阅读 · 0 评论 -
《流畅的python》阅读笔记1:杂谈
1这本书主要讲了什么呢?给我最大的收获是什么?以前我不太懂魔法函数的作用,这次我明白,魔法方法,可以让你自定义的对象,实现一些跟python内置对象一样的方法和操作,比如说,你的类实现__repr__,那么你就可以apply(repr(a)),来创建一个对象。比如你实现了__eq__,你就可以比较两个对象是不是一样。你自定义的对象有着跟python一样的操作符。这就是python的一致性,它让调用你写的类的用户学习成本降低,你只要像操作内置对象一样操作你的对象就行了。2作者先是讲解了python一些内原创 2020-06-04 09:50:53 · 322 阅读 · 0 评论 -
python学习中的一些技巧
###以后会经常用到的思想开发项目时,别急着写功能,先确定好用什么数据结构,确定好了,后面写起程序来会方便不少。网络编程v3.1,13节的5:40。演示如何写代码:想到再写,代码不是从第一行写的。网络编程v3.1,第2节,17的4:30秒用目标的方法讲如何写代码。先把能想到的写下来,推不动了,再倒着推,我目标是结婚,那倒着要让她觉得我是个靠谱的人,是爱她的,那怎么让她觉得我是爱她的呢?看...原创 2019-04-03 09:37:47 · 423 阅读 · 0 评论