首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
小学生绞尽脑汁也学不会的python(反射)
】的更多相关文章
小学生绞尽脑汁也学不会的python(反射)
小学生绞尽脑汁也学不会的python(反射) 1. issubclass, type, isinstance issubclass 判断xxxx类是否是xxxx类的子类 type 给出xxx的数据类型. 给出创建这个对象的类 isinstance 判断xxx对象是否是xxx类型的 class Animal: pass class Cat(Animal): pass class BoSiCat(Cat): pass print(issubclass(Cat, Animal)) # 判断第一个参数是…
小学生绞尽脑汁也学不会的python(异常,约束,MD5加密,日志处理)
小学生绞尽脑汁也学不会的python(异常,约束,MD5加密,日志处理) 异常处理(处理) 1.产生异常.raise 异常类(),抛出异常2. 处理异常: try: xxxxx # 尝试执行的代码. except 异常类 as 变量: # 出现错误的时候. 捕获到异常 xxxxxx # 处理异常ch try: """操作""" except Exception as e: """保护的父类,可以捕获所有异常"…
小学生绞尽脑汁也学不会的python(面对对象-----类与类之间的关系)
小学生绞尽脑汁也学不会的python(面对对象-----类与类之间的关系 1. 依赖关系. 最轻的一种关系 在方法中引入另一个类的对象 class Elephant: def __init__(self, name): self.name = name def open(self, ref): # 想要的是一个冰箱. 是哪个冰箱没有制定 print("冰箱哥哥, 开门把") ref.open_door() def close(self, ref): # 依赖关系 print("…
小学生绞尽脑汁也学不会的python(面对对象-----成员)
小学生绞尽脑汁也学不会的python(面对对象-----成员) 成员 class Person: def __init__(self, name, num, gender, birthday): # 成员变量(实例变量) self.name = name self.num = num self.gender = gender self.birthday = birthday # 对象来访问(成员方法)(实例方法) def marray(self, duifang): print("人会结婚%s&…
小学生绞尽脑汁也学不会的python(初识面对对象)
小学生绞尽脑汁也学不会的python(初识面对对象) 一. 面向对象思想 1. 面向过程. 重点在"过程". 按照实物的发展流程. 先干嘛,后干嘛, 最后干嘛.... 优点: 简单. 流水线式的工作 缺点: 可扩展性差. 2. 面向对象. 什么是对象? 对象是属性和动作的集合体. 对象是一个抽象的概念. 重点在"对象" : 属性和动作.类似上帝式的思维 优点: 可扩展性强(多态) 缺点: 编写相对比较复杂. 上手比较难. 面向对象和面向过程各有千秋. 各有各的好.…
python 反射
python 反射的核心本质其实就是利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动! 反射的四个基本函数使用 hasattr,getattr,setattr,delattr #!/usr/bin/python # coding=utf-8 import sys class Car(object): def __init__(self, name): self.name = name def start(self): print '%s start .…
python反射
python反射 python的反射是基于字符串的形式去对象(模块)中操作其成员.此操作是动态的,常用于web开发中url参数中对应模块或者函数的反射. 下面开始具体说明: 场景需求: 我的python脚本中有一百个函数,当前端页面被访问到之后,针对特定的url 我后端有特定的函数进行处理,我该如何判断这个URL需要后端那个函数来处理呢?写if判断?别闹了.一百多个呢,那执行效率会有多慢.看下面代码: def f1(): print("f1") def f2(): print(&quo…
Python反射机制理解
Python反射机制用沛齐老师总结的话说就是:利用字符串的形式去对象(模块)中操作(寻找)成员. getattr(object, name) object代表模块,name代表模块中的属性或成员,该函数表达获取object模块中的 属性或者成员.例如getattr(commons,"login")表示去commons模块里去找 login成员,而这里的login在commons模块里是一个函数名,代表着login的函数体. hasattr(object,name) object代表模块…
小学生都能学会的python(闭包和迭代器)
小学生都能学会的python(闭包和迭代器) 1. 函数名第一类对象 函数名其实就是变量名 1). 可以像变量一样互相赋值. 2). 可以作为函数的参数,进行传递 3). 可以作为返回值返回 4). 可以作为集合的元素进行存储 # def chi(): # print("吃月饼") # print(chi) # fn = chi # 函数名可以进行赋值 # a = 10 # b = a # chi() # fn() # 函数名可以像变量名一样进行使用 # def func1(): #…
小学生都能学会的python(函数的进阶)
小学生都能学会的python(函数的进阶) 1. 动态传参 形参: 1. 位置参数 2. 默认值参数 3. 动态传参 *args 动态接收位置参数 **kwargs 动态接收关键字参数 def func(*args, **kwargs): 在形参上用*,** 表示聚合. 实参表示打散 顺序: 位置 *args 默认值 **kwargs # def chi(*food): # * 表示的是不定参数. 可以传递任意个信息 参数名是food, 接受到的是元组 # print("我要吃", f…
小学生都能学会的python(函数)
小学生都能学会的python(函数) 神马是函数 函数: 对功能或者动作的封装 函数的定义 def 函数名(形参列表): 函数体(return) ret = 函数名(实参列表) 函数的返回值 return,只要执行到return 函数的本次调用就会被停止 1.如果函数不写return, 没有返回值. 接收到的是None 2.写了return. return后面什么都不写或者return后面的是None. 返回None 3.return 一个值. 返回一个结果 4.return 值,值,值 返回多…
小学生都能学会的python(文件操作)
小学生都能学会的python(文件操作) 1. open("文件路径", mode="模式", encoding="编码") 文件的路径: 1. 绝对路径: 1. 从磁盘根目录寻找 2. 网络上的路径 2. 相对路径 相对于当前你这个程序所在的文件夹.(用的最多的) 模式 r 读. 只读模式 w 写 只能写 f = open("d:/sylar.txt", mode="w", encoding="…
小学生都能学会的python(深浅拷贝)
小学生都能学会的python(深浅拷贝) join() 把列表中的每一项用字符串拼接起来 # lst = ["汪峰", "吴君如", "李嘉欣", "陈慧琳", "关之琳"] # # 遍历列表. 把列表中的每一项用"_" 做拼接 # s = "_".join(lst) # 把列表转化成字符串 # print(s) # # # s1 = "汪峰_吴君如_李嘉欣…
小学生都能学会的python(小数据池)
小学生都能学会的python(小数据池) 1. 小数据池. 目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建过多的对象 缓存:int, str, bool. int: 缓存范围 -5~256 str: 1. 长度小于等于1,直接缓存 2. 长度大于1. 字符串中如果只有数字, 字母, 下划线. 就会缓存 3. 乘以1. 同上, 乘以大于1的数.仅包含数字,字母下划线.最终长度小于20会缓存 4. 使用sys模块中的intern()缓存字符串 代码块的关系:如果在同一个代码块中.默认的整…
小学生都能学会的python(字典{ })
小学生都能学会的python(字典{ }) 1. 什么是字典 dict. 以{}表示. 每一项用逗号隔开, 内部元素用key:value的形式来保存数据 {"jj":"林俊杰", "jay":"周杰伦"} 查询的效率非常高, 通过key来查找元素 内部使用key来计算一个内存地址(暂时),hash算法. key必须是不可变的数据类型(key 必须是可哈希的数据类型) 可哈希就是不可变 2. 字典的增删改查 1. 字典的新增:…
小学生都能学会的python(列表[ ])
小学生都能学会的python(列表[ ]) 1. 什么是列表(list) 能装东西的东西 列表中装的数据是没有限制的, 大小基本上是够用的 列表使用[]来表示. 在列表中每个元素与元素之间用逗号隔开 有索引和切片 [start, end, step] 2. 增删改查 1. 增加: append(), insert(), extend()迭代增加 2. 删除: remove(), pop(), clear(), del 3. 修改: 索引修改 4. 查询: for el in list: el 5…
小学生都能学会的python(编码 and 字符串)
小学生都能学会的python(编码 and 字符串) 一,编码 最早的计算机编码是ASCII. 有英文+数字+特殊字符 8bit => 1byte 没有中文, 后面的编码必须兼容ASCII GBK 把中国的文字进行编码. 对ASCII扩充. 16bit => 2byte 主要包含了中文, 日文, 韩文, 英文(兼容ASCII) UNICODE 32bit 兼容各个国家的编码.万国码. 浪费空间 32bit => 4byte UTF…
小学生都能学会的python(运算符 和 while循环)
---恢复内容开始--- 小学生都能学会的python(运算符和编码) 一.格式化输出 #占位:"%s"占位,占得是字符串,"%d"占位,占的是数字. # 让用户输入 名字, 年龄, 爱好 .格式化输出成 我叫xxx, 我喜欢干xxxx. 我今年xxx大了 name = "alex" age = 18 hobby = "佩奇" print("我叫%s, 我喜欢干%s, 我今年%d岁了" % (name, h…
小学生都能学会的python(<lamda匿名函数,sorted(),filter(),map(),递归函数>)
小学生都能学会的python(<<lamda匿名函数,sorted(),filter(),map(),递归函数,二分法>> 1. lambda 匿名函数 lambda 参数: 返回值 注意: 1. 函数的参数可以有多个. 多个参数之间⽤逗号隔开2. 匿名函数不管多复杂. 只能写⼀⾏, 且逻辑结束后直接返回数据3. 返回值和正常的函数⼀样, 可以是任意数据类型 # def fang(x): # return x**2 # # # ret = fang(5) # # print(ret…
小学生都能学会的python(生成器)
小学生都能学会的python(生成器) 1. 生成器 生成器的本质就是迭代器. 生成器由生成器函数来创建或者通过生成器表达式来创建 # def func(): # lst = [] # for i in range(10000): # lst.append("衣服%s" % i) # return lst # lst = func() # print(lst) # def func(): # for i in range(1, 10000): # yield "衣服%s&qu…
Python反射和内置方法(双下方法)
Python反射和内置方法(双下方法) 一.反射 什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩. Python面向对象中的反射 通过字符串的形式操作对象相关的属性.Python中的一切事物都是对象(都可以使用反射) 四个可以实现自省的函数: hasattr():检测是否含有某属性 cl…
python反射问题
python中的__import__是以字符串的形式反射导入模块并以字符串的形式执行函数…
python 反射的使用
反射这个功能在很多编程语言中都有,在Python中自然也不例外.其实编程语言中的很多功能都能用简单的代码来验证. 在code代码之前,先简单的了解下反射的几个属性. hasattr(obj,name_str) 判断一个对象里是否存在某个字符串方法getattr() 如果存在就获取,然后执行...setattr() 如果不存在想设置,然后在执行...delattr() 如果存在自然可以删除 def bulk(self): print 'wangwang ....' class Dog(object…
python 反射调用
因为目前在写一个python的项目,用到了Python的反射机制,所以做一下笔记,把写项目过程中的感悟记下来. 先简单介绍下Demo用到的函数: sys.path 是python的模块的路径集,是一个集合(使用之前记得导入sys模块) >>> sys.path ['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-i386-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2…
python反射机制深入分析
对编程语言比较熟悉的朋友,应该知道“反射”这个机制.Python作为一门动态语言,当然不会缺少这一重要功能.然而,在网络上却很少见到有详细或者深刻的剖析论文.下面结合一个web路由的实例来阐述python的反射机制的使用场景和核心本质. 一.前言 def f1(): print("f1是这个函数的名字!") s = "f1" print("%s是个字符串" % s) 在上面的代码中,我们必须区分两个概念,f1和“f1".前者是函数f1的…
python反射和面向对象的知识并简述基本的异常
# 1.面向对象不是所有的情况都适用# 2.面向对象编程# a.定义类# class Foo:# def 方法1(self,bb):# b.根据类创建对象(创建) # class Person():# def __init__(self,name,age):# print(name)# #print(self.name)# self.Name=name# self.Age=age# def show(self):# print("姓名:%s,年龄:%d"%(self.Name,self…
python 反射机制在实际的应用场景讲解
剖析python语言中 "反射" 机制的本质和实际应用场景一. 前言 def s1(): print("s1是这个函数的名字!") s = "s1" print("%s是个字符串" % s) 在上面的代码中,我们必须区分两个概念,f1和“f1".前者是函数f1的函数名,后者只是一个叫”f1“的字符串,两者是不同的事物.我们可以用f1()的方式调用函数f1,但我们不能用"f1"()的方式调用函数.说…
Python 反射机制之hasattr()、getattr()、setattr() 、delattr()函数
反射机制 先看看我对Java中反射机制的通俗理解:反射之中包含了一个“反”的概念,所以要想解释反射就必须先从“正”开始解释,一般而言,当用户使用一个类的时候,应该先知道这个类,而后通过这个类产生实例化对象,但是“反”指的是通过对象找到类. 而对于Python,如果我们需要动态导入模块,并且动态地访问对象中的属性和方法,怎么做?请看下面的代码. s = "lib.test.commons" m1 = __import__(s) # 这样仅仅动态导入了lib模块 m2 = __import…
Python—反射
反射 1 什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩. 2 python面向对象中的反射:通过字符串的形式操作对象相关的属性.python中的一切事物都是对象(都可以使用反射) 四个可以实现自省的函数 下列方法适用于类和对象(一切皆对象,类本身也是一个对象) hasattr(obje…
python: 反射机制;
import comma def run(): inp = input('请输入要调用的函数').strip(); if hasattr(comma,inp): fun = getattr(comma,inp) fun(); else: print('404'); if __name__ == "__main__": run(); python作为一种动态语言,因而也存在反射机制.反射机制能够实现通过输入“字符串”来获取对象(模块)内的成员函数,进行调用:…