Python反射函数】的更多相关文章

python里面跟getattr相关的有hasattr,setattr,delattr  ,那么我们通过下面的例子,来详细的说说他们的用法. class Xiaorui: def __init__(self): self.name = 'fengyun' def setName(self,name): self.name = name def getName(self): return self.name def greet(self): print "Hello,i'm %s"%se…
反射机制 先看看我对Java中反射机制的通俗理解:反射之中包含了一个“反”的概念,所以要想解释反射就必须先从“正”开始解释,一般而言,当用户使用一个类的时候,应该先知道这个类,而后通过这个类产生实例化对象,但是“反”指的是通过对象找到类. 而对于Python,如果我们需要动态导入模块,并且动态地访问对象中的属性和方法,怎么做?请看下面的代码. s = "lib.test.commons" m1 = __import__(s) # 这样仅仅动态导入了lib模块 m2 = __import…
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的反射是基于字符串的形式去对象(模块)中操作其成员.此操作是动态的,常用于web开发中url参数中对应模块或者函数的反射. 下面开始具体说明: 场景需求: 我的python脚本中有一百个函数,当前端页面被访问到之后,针对特定的url 我后端有特定的函数进行处理,我该如何判断这个URL需要后端那个函数来处理呢?写if判断?别闹了.一百多个呢,那执行效率会有多慢.看下面代码: def f1(): print("f1") def f2(): print(&quo…
Python反射机制用沛齐老师总结的话说就是:利用字符串的形式去对象(模块)中操作(寻找)成员. getattr(object, name) object代表模块,name代表模块中的属性或成员,该函数表达获取object模块中的 属性或者成员.例如getattr(commons,"login")表示去commons模块里去找 login成员,而这里的login在commons模块里是一个函数名,代表着login的函数体. hasattr(object,name) object代表模块…
---恢复内容开始--- python基础,函数,面向对象,模块练习 1,简述python中基本数据类型中表示False的数据有哪些? #  [] {} () None 0 2,位和字节的关系? # 1 字节=8位 3,字符串和列表如何相互转换?# 字符串转列表: list('fku3ksjf' # 列表转字符串: "".join(['xx','x1','x2']) # 内部需要是字符串 4,写代码实现字符串反转,如:v = ‘oldboy’ # v[::-1]# 注:其他方式也可以…
小学生绞尽脑汁也学不会的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反射和内置方法(双下方法) 一.反射 什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩. Python面向对象中的反射 通过字符串的形式操作对象相关的属性.Python中的一切事物都是对象(都可以使用反射) 四个可以实现自省的函数: hasattr():检测是否含有某属性 cl…
函数一词起源于数学,但是在编程中的函数和数学中的有很大不同.编程中的函数式组织好的,可重复使用的,用于实现单一功能或相关联功能的代码块. 我们在学习过程中已经使用过一些python内建的函数,如print().但我们也可以自己创建函数,这被叫做用户自定义函数. 函数的特点: 1 代码重用 2 保持一致性 3 便与修改,易扩展 1. 定义一个函数 1.1 python定义函数用def关键字,一般格式如下 def 函数名(参数列表): 函数体 1.2 函数名的命名规则 函数名必须以下划线或字母开头,…
python strip()函数 介绍,需要的朋友可以参考一下   函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)        删除s字符串中开头.结尾处,位于 rm删除序列的字符 s.lstrip(rm)       删除s字符串中开头处,位于 rm删除序列的字符 s.rstrip(rm)      删除s字符串中结尾处,位于 rm删除序列的字符 注意: 1. 当rm为空时,默认删除空白符(包括'\n', '\r',  '\t',  ' ') 例如:>>>…
Python split()函数 函数原型: split([char][, num])默认用空格分割,参数char为分割字符,num为分割次数,即分割成(num+1)个字符串 1.按某一个字符分割. 如‘.‘: 1 str = ('www.google.com') 2 print str 3 str_split = str.split('.') 4 print str_split 结果如下: 2.按某一个字符分割,且分割n次. 如按‘.’分割1次 1 str = ('www.google.com…
1.Python数学函数 1.abs(x):取绝对值,内建函数 2.math.ceil(x):向上取整,在math模块中 3.cmp(x,y):如果 x < y ,返回-1:如果 x == y ,返回0:如果 x > y ,返回1.内建函数 4.math.exp(x):在math模块中 5.math.fabs(x):返回数字的绝对值,在math模块中 6.math.floor(x):向下取整,在math模块中 7.math.log10(x):返回以10为底数的x的对数,在math模块中 8.m…
本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应. 二.什么是回调: 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用.回调和异步调用.同步调用…
本节内容 函数介绍及其作用 函数的定义与调用 函数的参数说明 全局变量与局部变量 值传递和引用传递 一.函数的介绍及其作用 编程语言中的函数与数学中的函数是有区别的:数学中的函数有参数(输入),就会有相应的结果(输出).编程语言中的函数有输入,不一定会返回结果.编程语言中的函数其实就是一个用于完成某个特定功能的相关代码的代码段 .那么哪些代码语句应该被整合到一起定义为一个函数呢?这取决于你想让这个函数完成的功能是什么. 为什么要将这个代码段定义成一个函数呢?这其实就是函数的作用.假设我们在编写一…
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数  函数与函数式编程 1.面向对象: 华山派---->类----> class2.面向过程: 少林派---->过程---->def3.函数式编程:逍遥派---->函数---->def 函数与函数式编程 1.介绍: 在过去的十年间,大家广为熟知的编程方法无非两种:面向对象和面向过程,其实,无论哪种,都是一种编程的规范或者是…
[C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.strip(rm) 删除s字符串中开头.结尾处,位于 rm删除序列的字符 s.lstrip(rm) 删除s字符串中开头处,位于 rm删除序列的字符 s.rstrip(rm) 删除s字符串中结尾处,位于 rm删除序列的字符 示例: >>> s=' abcdefg ' #默认情况下删除空白符 >…
[C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith()函数判断文本的指定范围字符段是否以某个字符开始,endswith()函数判断文本是否以某个字符结束.默认的指定范围为整个字符串: >>> >>> a 'abcdefghijklmn' >>> a.startswith('abc') True >>…
[C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我们将把这些函数放在命名空间中,真正作为一个函数库来使用. 本节内容 在本节,我们将实现两个python字符串分割函数.这两个函数的函数原型为: split(spe = None,maxsplit= -1) rsplit(spe= None ,maxsplit = -1) 这两个方法使用参数spe作为…
本节将学习如何用Python定义函数,调用函数,以及学习匿名函数的使用 1.定义函数 Python中定义函数用关键字def,如下例所示,testFun为函数名 def testFun(): print "hello world" 2.函数参数 一个函数可以有0个或多个形式参数: def testAdd(x,y): print x+y 函数的形式参数值可以初始化,使用了初始值的参数,在调用的时候可以不需要指定该参数. def testSum(z,x=1,y=0): print x+y+z…
python基础——函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解. Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码. 位置参数 我们先写一个计算x2的函数: def power(x): ret…
返回函数 Python的函数不但可以返回int.str.list.dict等数据类型,还可以返回函数! 例如,定义一个函数 f(),我们让它返回一个函数 g,可以这样写: def f(): print 'call f()...' # 定义函数g: def g(): print 'call g()...' # 返回函数g: return g 仔细观察上面的函数定义,我们在函数 f 内部又定义了一个函数 g.由于函数 g 也是一个对象,函数名 g 就是指向函数 g 的变量,所以,最外层函数 f 可以…
转发:jihite-博客园-python strip()函数 函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)        删除s字符串中开头.结尾处,位于 rm删除序列的字符 s.lstrip(rm)       删除s字符串中开头处,位于 rm删除序列的字符 s.rstrip(rm)      删除s字符串中结尾处,位于 rm删除序列的字符 注意: 1. 当rm为空时,默认删除空白符(包括'\n', '\r',  '\t',  ' ') 例如: 2.这里的rm删除…
本节内容 上一篇中介绍了Python中函数的定义.函数的调用.函数的参数以及变量的作用域等内容,现在来说下函数的一些高级特性: 递归函数 嵌套函数与闭包 匿名函数 高阶函数 内置函数 总结 一.递归函数 函数是可以被调用的,且一个函数内部可以调用其他函数.如果一个函数在内部调用本身,这个函数就是一个递归函数.函数递归调用的过程与循环相似,而且理论上,所有的递归函数都可以写成循环的方式,但是递归函数的优点是定义简单,逻辑清晰.递归和循环都是一个重复的操作的过程,这些重复性的操作必然是需要有一定的规…
函数形参 函数取得的参数是你提供给函数的值,这样函数就可以利用这些值 做 一些事情.这些参数就像变量一样,只不过它们的值是在我们调用函数的时候定义的,而非在函数本身内赋值. 参数在函数定义的圆括号对内指定,用逗号分割.当我们调用函数的时候,我们以同样的方式提供值.注意我们使用过的术语——函数中的参数名称为 形参 而你提供给函数调用的值称为实参 . 例:使用形参 #! /usr/bin/python def printMax(a,b): if a > b: print a , "is max…
在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 我们以自定义一个求绝对值的my_abs函数为例: def my_abs(x): if x >= 0: return x else: return -x print my_abs(1) print my_abs(-1) 请自行测试并调用my_abs看看返回结果是否正确. 请注意,函数体内部的语句在执行时,一旦执行到return时,函数就执行完…
Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数.可以直接从Python的官方网站查看文档: http://docs.python.org/2/library/functions.html#abs 也可以在交互式命令行通过help(abs)查看abs函数的帮助信息. 调用abs函数: >>> abs(100) 100 >>> abs(-20) 20 >>> abs(1…
一.python中的函数参数形式 python中函数一般有四种表现形式: 1.def function(arg1, arg2, arg3...) 这种是python中最常见的一中函数参数定义形式,函数参数之间用逗号分隔,调用的时候的参数必须与定义的时候相同,且参数顺序与形参一一对应. def myfunction(a, b): print a,b #正确调用 myfunction(3,7) #错误调用 myfunction(3) myfunction(2, 3, 5) 2.def functio…
python编程语言 函数的形参的讲解: 我在交互模式中写了个函数: def adder(**args): sum=0 for x in args.keys(): sum+=args[x] return sum 随后调用,在交互模式中输入 adder({'a':1,'b':2,'c':3}) 为什么结果不是我所预期的求和呢? 而是报错.Traceback (most recent call last): File "", line 1, in adder({'a':1,'b':2,'c…
Python入门-函数的使用到Python的公布安装 本文主要适合有一定编程经验,至少掌握一门编程语言的人查看. 文中样例大多都是简单到认识英文单词就能看懂的水平,主要讲的是Python的总体使用方法和结构.不会设计高深层次,对Python入门有一定帮助. Python和Java对照.会看到Python设计思想在于简洁.有用.强大,每个程序猿都值得学习和掌握. Python函数的定义及有用 Python中的函数是一个命名的代码块.和Java一样,能够带0个或多个參数.主要形式如 def $函数名…
python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要有四种方式: 1.F(arg1,arg2,...) 这是最常见的定义方式,一个函数可以定义任意个参数,每个参数间用逗号分割,用这种方式定义的函数在调用的的时候也必须在函数名后的小括号里提供个数相等的值(实际参数),而且顺序必须相同,也就是说在这种调用方式中,形参和实参的个数必须一致,而且必须一一对应…