python反射

python之Django

馋奶兔 提交于 2019-11-30 15:13:23
1 Django基础一之web框架的本质 Django 、Flask 这些就是Python语言的web 框架。 1.1web框架的本质 Web应用本质上就是一个 socket服务端 ,而用户的浏览器就是一个 socket客户端。 1.1.1什么是 Web 服务器? 平时我们都是通过浏览器(比如Chrome,Firefox等)上网的,当我们在浏览器的地址栏里输入地址后,会得到一个网页。 这个网页就是 web 服务器返回给我们的,而浏览器就称为客户端,当我们输入网址并按下回车后,就像web服务器发送了一个web请求。 这种模式成为 B/S 模式 ,即 Browse / Server 模式 在浏览器中输入地址、按回车后,按下F12 就是看到如下信息 下面就让我们来目睹整个过程吧 建立连接:客户机通过TCP/IP协议建立到服务器的TCP连接。 请求过程:客户端向服务器发送HTTP协议请求包(Request),请求服务器里的资源文档。 应答过程:服务器向客户机发送HTTP协议应答包(Response),如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“动态内容”,并将处理得到的数据返回给客户端。由客户端解释HTML文档,在客户端屏幕上渲染图形结果。 关闭连接:客户机与服务器断开。 这里Request 和 Response 都需要遵守 HTTP 协议,关于

第六章 模块

放肆的年华 提交于 2019-11-30 07:01:33
第六章 模块 6.1 模块的定义 模块的定义 py文件 写好了的 对程序员直接提供某方面功能的文件 包的定义 文件夹 存储了多个py文件的文件夹 如果导入的是一个包,这个包里的模块默认是不能用的 导入一个包相当于执行_ _ init _ _.py文件中的内容 python2与python3的区别七 python2:文件夹中必须有_ _ init _ _.py文件 python3:不需要有_ _ init _ _.py文件 建议:推荐以后写代码,无论是python2还是python3,都要加上此文件 6.2 模块的分类(类库) 6.2.1 内置模块 python内部提供的功能 导入模块后,直接使用即可 6.2.1.1 random 随机数模块 randint:得到一个随机数 import random # 导入一个模块 v = random.randint(起始,终止) # 得到一个随机数 #示例:生成随机验证码 import random def get_random_code(length=6): data = [] for i in range(length): v = random.randint(65,90) data.append(chr(v)) return ''.join(data) code = get_random_code() print(code)

Python从入门到放弃

余生长醉 提交于 2019-11-30 06:21:38
第一篇 markdown编辑器 001 markdown基本语法 第二篇 计算机基础 002 计算机基础之编程 003 计算机组成原理 004 计算机操作系统 005 编程语言分类 006 网络的瓶颈效应 007 计算机基础小结 第三篇 Python解释器和集成环境 008 Python和Python解释器 009 Python解释器安装 010 Anaconada安装(选做) 011 Python解释器镜像源修改 012 执行Python程序的两种方式 013 Python的IDE之Pycharm的使用 014 Python的IDE之Jupyter的使用 015 pip的使用 016 Python解释器和Python集成环境小结 第三篇 Python基础 017 变量 018 常量 019 Python变量内存管理 020 变量的三个特征 021 花式赋值 022 注释 023 数据类型基础 024 数字类型 025 字符串类型 026 列表类型 027 字典类型 028 布尔类型 029 解压缩 030 Python与用户交互 031 格式化输出的三种方式 032 基本运算符 033 流程控制之if判断 034 流程控制之while循环 035 流程控制之for循环 036 Python基础小结 037 Python基础实战之猜年龄游戏 第四篇 Python进阶 038

Python 手册目录

喜夏-厌秋 提交于 2019-11-30 02:35:44
Python常用单词 Python 第一章 Python基础 Python简介 Python安装 Python入门 第二章 Python运算符 Pycharm使用 While 循环 格式化输出 常用运算符 初识—编码 第三章 Python基础数据类型一 整型和布尔值 字符串 第四章 Python基础数据类型二 列表 元组 第五章 Python 基础数据类型三 字典 第六章 小数据池 小数据池 深浅拷贝 集合 第七章 Python基础数据类型补充 数据类型方法 — 补充 以后会编程会遇到的坑 编码 — 进阶 第八章 Python基础文件操作 读操作 写操作 +模式 其他操作 第九章 Python基础初识函数 函数初识 函数的参数 第十章 Python基础函数进阶 函数的动态参数 函数的名称空间 函数的嵌套及gloabal、nonlocal 第十一章 Python基础迭代器 函数名的使用及f-strings使用 迭代器 第十二章 Python基础生成器 生成器 推导式 内置函数一 第十三章 内置函数二 内置函数二 闭包 第十四章 Python基础装饰器 装饰器介绍 标准版装饰器 第十五章 装饰器进阶及递归 带参数装饰器 多个装饰器装饰一个函数 递归 第十六章 自定义模块 模块的简介 import from xxx import xxx 导入顺序 time模块 datetime模块

路人甲的 Python 总结

怎甘沉沦 提交于 2019-11-29 23:31:18
Python总结 目录 Python总结 1 前言 2 (一)如何学习Python 2 (二)一些Python免费课程推荐 3 (三)Python爬虫需要哪些知识? 4 (四)Python爬虫进阶 6 (五)Python爬虫面试指南 7 (六)推荐一些不错的Python博客 8 (七)Python如何进阶 9 (八)Python爬虫入门 10 (九)Python开发微信公众号 12 (十)Python面试概念和代码 15 (十一)Python书籍 23 前言 知乎:路人甲 微博:玩数据的路人甲 微信公众号:一个程序员的日常 在知乎分享已经有一年多了,之前一直有朋友说我的回答能整理成书籍了,一直偷懒没做,最近有空仔细整理了知乎上的回答和文章另外也添加了一些新的内容,完成了几本小小的电子书,这一本是有关于Python方面的。 还有另外几本包括我的一些数据分析方面的读书笔记、增长黑客的读书笔记、机器学习十大算法等等内容。将会在我的微信公众号:一个程序员的日常进行更新,同时也可以关注我的知乎账号:路人甲 及时关注我的最新分享用数据讲故事。 (一)如何学习Python 学习Python大致可以分为以下几个阶段: 1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量、数据结构、语法等,基础过的很快,基本上1~2周时间就能过完了,我当时是在这儿看的基础:Python 简介 |

python之路——面向对象进阶

梦想与她 提交于 2019-11-29 21:32:15
阅读目录 isinstance和issubclass 反射   setattr   delattr   getattr   hasattr __str__和__repr__ item系列   __getitem__   __setitem__   __delitem__ __del__ __new__ __call__ with和__enter__,__exit__ __len__ __hash__ __eq__ 回到顶部 isinstance和issubclass isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() isinstance(obj, Foo) issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass issubclass(Bar, Foo) 回到顶部 反射 1 什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省)。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。 2 python面向对象中的反射

第一阶段:Python开发基础 day29 面向对象之元类以及元类延伸的相关知识

社会主义新天地 提交于 2019-11-29 19:18:58
目录 上节课内容回顾 一、元类是什么 二、class底层原理分析 三、通过元类来控制类的产生 四、通过元类控制类的调用过程 五、有了元类之后的属性查找 上节课内容回顾 # 面试题:这俩有什么区别 # sorted() # l=[1,3] # l.sort() # # len() # l.__len__() # 反射 # setattr() #向对象中设置属性或方法 # getattr() #获取对象中的属性或方法 # delattr() #删除对象中的属性或方法 # hasattr() #判断对象中是否有该属性或方法(属性或方法用字符串表示# ) # import os # hasattr(os,'path') # p=getattr(os,'path1',None) # print(p) # setattr(对象,key,value) # delattr() #内置方法(魔法方法) # __str__ print 打印的时候,会自动触发该函数的执行 #点拦截方法 对象加 . 就会触发 # __setattr__ : 对象加.赋值或修改值会触发 #__getattr__ : 对象加.获取值,如果取不到,会触发 #__delattr__ :对象加. 删除值,会触发 # dic=dict(name='lqz',age=18) # dic.name # dic['name'] #

第一阶段:Python开发基础 day28 面向对象之反射与内置方法

喜夏-厌秋 提交于 2019-11-29 19:18:29
目录 一、断点调试 二、issubclass和ininstance方法 三、反射 四、内置方法 总结 一、断点调试 # 一定公民:只要可以吧一个东西赋值给一个变量,这个东西就叫一等公民 #在想要加断点的地方用鼠标点击一下,你会看到一个红色圆圈 #变红的地方,程序执行到,就会暂停 #断电应该加载报错之前 #绿色箭头表示快速跳到下一个断点执行 #控制台报错,点击你能看懂的最后一行,光标会快速定位到错误代码,在错误代码上放,加断电,断点调试 def test5(): return 'lqz' def test3(): print('3333') def test(): def test2(): test3() i=900 i=test5() if i>100: print('大于100') # print(i) print(i) return test2 print('xxxx') print('第一句话') #这个函数内部出错 test()() print('4444') 二、issubclass和ininstance方法 #判断第一个类是不是第二个类的子类,返回true或者false # issubclass() # class Foo: # pass # class Bar(Foo): # pass # # class Tt(Bar): # pass # print(Bar._

Python之路【第十六篇】:Django【基础篇】

跟風遠走 提交于 2019-11-29 14:20:32
Python之路【第十六篇】:Django【基础篇】 P ython的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。 基本配置 一、创建django程序 终端命令:django-admin startproject sitename IDE创建Django程序时,本质上都是自动执行上述命令 其他常用命令:   python manage.py runserver 0.0.0.0   python manage.py startapp appname   python manage.py syncdb   python manage.py makemigrations   python manage.py migrate   python manage.py createsuperuser 二、程序目录 三、配置文件 1、数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'dbname', 'USER': 'root', 'PASSWORD': 'xxx', 'HOST': '', 'PORT': '', } } #

python 反射

僤鯓⒐⒋嵵緔 提交于 2019-11-29 13:56:19
反射 描述 反射就是指在程序运行时,动态的去确定对象的类型,并且可以通过字符串的的形式去调用对应的属性,方法,导入模块, 是一种基于字符串的事件驱动 举一个例子: class Student: def __init__(self): self.name = 'mhy' self.price = '5000' obj1 = Student() content = input('>>>:') # 这里输入的name是字符串 # 如果不知道反射,我们平常都是这么根据输入调用的 if content == 'name': print(obj1.name) elif content == 'price': print(obj1.price) 但是上面的方法,我们如果要调用成百上千的个方法或者属性,不得死了,所以就有了反射这种方法 python提供了几个内置函数来解决这种事情 getattr() hasattr() 例如上面的例子,我们现在可以这样做,代码如下 对象的反射 getattr(对象,字符串形式属性或者方法名) 返回对象中属性名对应的值 hasattr(对象,字符串形式属性或者方法名) 返回的是一个 bool 值,判断对象中是否存在属性 反射属性 ​ val = getattr(对象,'属性名') val就是属性的值 class Student: def __init__(self)