python反射

Python 入门 之 反射

不问归期 提交于 2019-12-27 17:51:42
1、反射 : (自省) ​ 反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省)。 Python面向对象中的反射:通过字符串的形式操作对象的相关属性。Python中的一切事物都是对象(都可以使用反射) <1> getattr() 获取 <2> setattr() 设置 <3> hasattr() 判断是否存在 <4> delattr() 删除 (1)通过字符串操作对象的属性和方法 class A: def __init__(self,name): self.name = name def func(self): print("is A func") a = A("rimo") A.func() print(a.name) a.func() 推荐Python大牛在线分享技术 扣qun:855408893 领域:web开发,爬虫,数据分析,数据挖掘,人工智能 零基础到项目实战,7天学习上手做项目 (2)对象的角度使用反射 class A: def __init__(self,name): self.name = name def func(self): print("is A func") a = A("rimo") print(hasattr(a,"name")) # 返回 True就是说明name这个属性在对象a中存在 print(getattr(a,"name"

python第一周语言基础

拥有回忆 提交于 2019-12-27 09:26:31
控制语句 if语句,当条件成立时运行语句块。经常与else, elif(相当于else if) 配合使用。 for语句,遍历列表、字符串、字典、集合等 迭代器 ,依次处理迭代器中的每个元素。 while语句,当条件为真时,循环运行语句块。 try语句,与except,finally配合使用处理在程序运行中出现的异常情况。 class语句,用于定义类型。 def语句,用于定义函数和类型的方法。 pass语句,表示此行为空,不运行任何操作。 assert语句,用于程序调试阶段时测试运行条件是否满足。 with语句,Python2.6以后定义的语法,在一个场景中运行语句块。比如,运行语句块前加密,然后在语句块运行退出后解密。 yield语句,在迭代器函数内使用,用于返回一个元素。自从Python 2.5版本以后。这个语句变成一个运算符。 raise语句,制造一个错误。 import语句,导入一个模块或包。 from import语句,从包导入模块或从模块导入某个对象。 import as语句,将导入的对象赋值给一个变量。 in语句,判断一个对象是否在一个字符串/列表/元组里。 表达式 Python的表达式写法与C/C++类似。只是在某些写法有所差别。 主要的 算术运算符 与C/C++类似。+, -, *, /, //, **, ~, %分别表示加法或者取正、减法或者取负、乘法、除法、整除

常见面试题整理--Python概念篇

允我心安 提交于 2019-12-27 04:04:23
希望此文可以长期更新并作为一篇Python的面试宝典。每一道题目都附有详细解答,以及更加详细的回答链接。此篇是概念篇,下一篇会更新面试题代码篇。 (一)、这两个参数是什么意思:*args,**kwargs?我们为什么要使用它们? 答:如果我们不确定往一个函数中传入多少参数,或者我们希望以元组(tuple)或者列表(list)的形式传参数的时候,我们可以使用*args(单星号)。如果我们不知道往函数中传递多少个关键词参数或者想传入字典的值作为关键词参数的时候我们可以使用**kwargs(双星号),args、kwargs两个标识符是约定俗成的用法。 另一种答法:当函数的参数前面有一个星号*号的时候表示这是一个可变的位置参数,两个星号**表示这个是一个可变的关键词参数。星号*把序列或者集合解包(unpack)成位置参数,两个星号**把字典解包成关键词参数。 代码辅助理解: (二)、谈一谈Python的装饰器(decorator) 装饰器本质上是一个Python函数,它可以让其它函数在不作任何变动的情况下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景。比如:插入日志、性能测试、事务处理、缓存、权限校验等。有了装饰器我们就可以抽离出大量的与函数功能无关的雷同代码进行重用。 有关于具体的装饰器的用法看这里: 装饰器 - 廖雪峰的官方网站 (三)

Python- 反射 及部份内置属性方法

只谈情不闲聊 提交于 2019-12-24 12:14:46
@property 类的静态属性,封装内部具体实现细节,调用的时候类似调用数据属性。既可以访问类属性,也可以访问实例属性 ![](https://s1.51cto.com/images/blog/201906/08/6de11e5b657bbb1c6e02f4ed64821fa7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) @classmethod 类方法 ![](https://s1.51cto.com/images/blog/201906/08/d36f46a721750e99047808d30276f111.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) @staticmethod 类的工具包,不能使用类变量和实例变量 继承顺序 第二种 继承、多态、封装 多态:在不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同 封装 :

python基础(十一)面向对象和类

会有一股神秘感。 提交于 2019-12-24 10:42:18
面向对象 面向对象,简单来说用类对一切对象进行描述的一种编程思维和方法.在这里就不多做介绍(因为我也只是意会到一点点).根据面向对象的概念,我们需要注意的几个概念: 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法. 对象(Object):通过类定义的数据结构实例.对象包括两个数据成员(类变量和实例变量)和方法。 类变量:类变量在整个实例化的对象中是公用的,类变量定义在类中且在函数体之外,类变量通常不作为实例变量使用. 实例变量:定义在方法中的变量,只作用于当前实例. 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。 方法:类中定义的函数. 继承:即一个派生类(derived class)继承基类(base class)的字段和方法.也称为父类和子类 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写. 实例化:创建一个类的实例,类到具体对象的过程 属性: 不管是变量或者是方法,都称为属性.变量一般称为静态属性,方法称为动态属性 面向对象的三大特性 1, 封装: 把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 2, 继承: 让不同类型的对象获得其它类型对象的属性和方法. 3, 多态: 实现接口重用, 即可以不同类型对象使用相同的方法

Python开发【第二十一篇】:Web框架之Django【基础】

丶灬走出姿态 提交于 2019-12-24 05:26:19
Python的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、数据库 1 2 3 4 5 6 7 8 9 10 DATABASES = { 'default' : { 'ENGINE' : 'django.db.backends.mysql' , 'NAME' : 'dbname' , 'USER' : 'root' , 'PASSWORD' : 'xxx' , 'HOST' : '', 'PORT' : '', } } + View Code

python—面向对象设计

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-24 01:15:31
一:三大编程范式 1.面向过程编程 2.函数式编程 3.面向对象编程 (类:把一类事物的相同的特征和动作整合到一起就是类,类是一个抽象的概念) (对象:就是基于类而创建的一个具体的事物 [具体存在的] 也是特征和动作整合到一起) 二:类与对象 (在python2中,分 新式类 与 经典类 ,python3统一都是新式类【新式类,class 类名:】【经典类,class 类名(object)】) class Chinese: #class是关键字,表示类名 pass print(Chinese) p1=Chinese() #实例化过程,创建对象,类名后面加括号 print(p1) 小实例 实例化,由类产生对象的过程叫做实例化,类实例化的结果就是一个对象,或者叫做一个实例 ps: 类中的函数第一个参数必须是self 类中定义的函数叫做 “方法” 类是用来描述一类事物,类的对象指的是这一类事物中的一个个体 是事物就要有属性,属性分为: 1.数据属性:就是变量 2.函数属性:就是函数,在面向对象里通常称为方法 注:类和对象均是用点来访问自己的属性 属性 类是用来描述一类事物,类的对象指的是这一类事物中的一个个体 是事物就要有属性,属性分为: 1.数据属性:就是变量 2.函数属性:就是函数,在面向对象里通常称为方法 注:类和对象均是用点来访问自己的属性 属性 1 class Chinese:

python面向对象之反射

六眼飞鱼酱① 提交于 2019-12-22 19:05:58
反射在类中的使用 isinstance(a对象, B类) 判断a对象是否属于B类,是返回 Trun ,不是返回 False 。 class Aniaml: pass class Person(Aniaml): pass class Student(Person): pass aniaml = Aniaml() person = Person() student = Student() lis = list() print(isinstance(aniaml,Aniaml)) print(isinstance(person,Aniaml)) print(isinstance(student,Aniaml)) print(isinstance(lis,Aniaml)) True True True False issubclass(A类,B类) 判断A类 是否 是B类的子类 class Aniaml: pass class Person(Aniaml): pass class Student(Person): pass aniaml = Aniaml() person = Person() student = Student() lis = list() print(issubclass(Person,Aniaml)) # Person类是否是Aniaml类的子类,True print

python使用orm映射数据库架构

最后都变了- 提交于 2019-12-21 01:37:22
用sqlalchemy连接sqlserver,操作数据库 ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' # conding:utf-8 from sqlalchemy import create_engine from sqlalchemy . ext . declarative import declarative_base from sqlalchemy import Column , Integer , String , DateTime # 区分大小写 from sqlalchemy . orm import sessionmaker # 生成orm基类 base = declarative_base ( ) class Status ( base ) : __tablename__ = 'Status' # 表名 __table_args__ = { 'schema' : 'Code' #数据库架构名 } StatusId = Column ( Integer , primary_key = True ) StatusName = Column ( String ( 20 ) ) UpdateTime = Column ( DateTime )

Python学习 Django基础(一)

谁都会走 提交于 2019-12-17 14:17:11
Django基础(一) python Web程序 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。 #!/usr/bin/env python #coding:utf-8 import socket def handle_request(client): buf = client.recv(1024) client.send("HTTP/1.1 200 OK\r\n\r\n") client.send("Hello, Seven") def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('localhost',8000)) sock.listen(5) while True: connection, address = sock.accept() handle_request(connection) connection.close() if __name__ == '__main__': main() 上述通过socket来实现了其本质,而对于真实开发中的python web程序来说,一般会分为两部分:服务器程序和应用程序。服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理