目录 一.反射 1 什么是反射 2 如何实现反射 二.内置方法 1 什么是内置方法 2 为什么要用内置方法 3 如何使用内置方法 3.1 str 3.2 del 三.元类 1 什么是元类 2 class关键字创造类的步骤 3 自定义元类控制类的产生 4 如何让对象可以被调用 5 自定义元类控制类的调用 补充:属性查找 一.反射 1 什么是反射 指的是在程序运行过程中可以'动态'地获取对象的信息 静态语言:java,c,在定义变量时必须指定数据类型的强类型语言 动态语言:python,php,在定…
In memory of the more than 300 thousand Chinese murdered exec( 字符类型的代码,全局变量,局部变量 ).其中,全局变量和局部变量可以写成字典形式进行赋值. 举例: ''' 字符串 exec(字符串,全局变量.局部变量) ''' x = 10 expr = """ z = 30 sum = x + y + z print(sum) """ def func(): y = 20 exec(…
一.反射 下述四个函数是专门用来操作类与对象属性的,如何操作? 通过字符串来操作类与对象的属性,这种操作称为反射 class People: country="China" def __init__(self,name): self.name=name def tell(self): print('%s is aaa' %self.name) obj=People('egon') 1.hasattr print(hasattr(People,'country')) print('cou…
1 描述 把一个字符串当成语句执行 exec()  执行储存在字符串或文件中的 Python 语句,相比于  eval() , exec() 可以执行更复杂的 Python 代码. exec函数和eval函数类似,也是执行动态语句, 只不过eval函数只用于执行表达式求值,         而exec函数主要用于执行语句块. >>> eval("a=1+2") Traceback (most recent call last): File "<stdi…
eval是将函数内的字符串以计算式的方式进行计算并给与外部一个值. 例: a=eval('1+1') print(a) >>>>2 但是如果出现在函数内部字符串中进行赋值会抛出异常SyntaxError: invalid syntax a=eval('a=1+1') print(a) >>>>SyntaxError: invalid syntax 很显然只能在外部进行给与变量名,内部不可以 那么有没有可以进行再内部赋值的函数呢? 有>exec是pyth…
1.函数的基本定义 def 函数名称(参数) 执行语句 return 返回值 def : 定义函数的关键字: 函数名称:顾名思义,就是函数的名字,可以用来调用函数,不能使用关键字来命名,做好是用这个函数的功能的英文名命名,可以采用驼峰法与下划线法: 参数:用来给函数提供数据,有形参和实参的区分: 执行语句:也叫函数体,用来进行一系列的逻辑运算: 返回值:执行完函数后,返回给调用者的数据,默认为None,所以没有返回值时,可以不写return. 2.函数的普通参数 最直接的一对一关系的参数,如:…
1. isinstance与issubclass 1.1.isinstance(obj,cls) 检查obj是否是类cls的对象,或者是类cls的子类的对象 class A: pass class B(A): pass abj = B() print(isinstance(abj,B)) #True print(isinstance(abj,A)) #True 1.2.issubclass(sub, super) 检查sub类是否是super类的子类,或者是super子类的子类 class A:…
1.python内置函数isinstance(数字,数字类型),判断一个数字的数字类型(int,float,comple).是,返回True,否,返回False2.python内置函数id()可以查看每个对象的内存地址3.python内置函数divmod(a,b),返回tuple类型,返回(商,余数)4.python内置函数round(数字,保留多少位),对一个数字进行四舍五入5.python内置函数dir(类库名称),返回list类型,得到该类库时中的函数或变量6.python内置函数help…
目录 1 lambda表达式 (匿名函数) 2 内置函数 1 lambda表达式 (匿名函数) 用于表示简单的函数 lambda表达式,为了解决简单函数的情况: def func(a1,a2): =====> func = lambda a1,a2:a1+a2 # 函数直接得到返回值,这里隐藏了return return a1+a2 简化 # 三元运算,为了解决简单的if else的情况,如: if 1 == 1: a = 123 else: a = 456 a = 123 if 1 == 1…
常见内置函数 内置函数:在类的内部,特定时机自动触发的函数 示例1:setattr.getattr.delattr class Person: # def __init__(self, name): # self.name = name def __setattr__(self, key, value): # 当设置对象成员属性的时,系统会自动调用 print(key, value) self.__dict__[key] = value def __getattr__(self, item):…
一.内置函数补充 1.isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() print(isinstance(obj, Foo)) #结果为True 2.issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass print(issubclass(Bar, Foo)) #结果为True…
exec内置函数的补充 exec: 是一个python内置函数,可以将字符串的代码添加到名称空间中; - 全局名称空间 - 局部名称空间 exec(字符串形式的代码, 全局名称空间, 局部名称空间) # 使用exec, code相当于局部名称空间中的名字 code = ''' global x x = 100 y = 20 def func(): pass def __init__(): pass ''' # 自定义的全局名称空间 global_dic = { 'x': 10000 } # 自定…
eval与exec内置方法 将字符串作为执行目标,得到响应结果 eval常用作类型转换:该函数执行完有返回值 exec拥有执行更复杂的字符串:可以形成名称空间 eval内置函数的使用场景:   1.执行字符串会得到相应的执行结果   2.一般用于类型转化,得到dict.list.tuple等 dic_str = "{'a': 1, 'b': 2, 'c': 3}" print(eval(dic_str)) list_str = "[1, 2, 3, 4, 5]" p…
isinstance   是 python中的内置函数 , isinstance()用来判断一个函数是不是一个类型 issubclass  是python 中的内置函数,  用来一个类A是不是另外一个类B的子类   issubclass(子类,父类) class Foo: pass obj=Foo() print(isinstance(obj,Foo))# 判断实例化的foo是不是这个类 #判断结果为True print(isinstance(obj,Foo)) 它就等同于 ======>>&…
一.内置函数的补充 isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo: pass obj=Foo() print(isinstance(obj,Foo)) # 推荐使用该函数来判断一个函数的类型,判断obj(对象)是否是Foo(类)的对象,是则为真,否则为假 也可用下面main方法判断 print(type(obj) is Foo) issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(obje…
一 .内置函数补充 1.isinstance函数: isinstance(obj,cls)检查obj是否是类 cls 的对象 使用该函数来判断一个函数的类型 2. issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass issubclass(Bar, Foo) 二.反射 通过字符串来操作类与对象的属性,这种操作称为反射 class People: country="China…
type函数的隐藏属性 相信大家都知道内置函数type是用来查看对象的数据类型的.例: 那比如我对int类查看类型呢? 有朋友会说,int是内置类啊,用自定义的应该不会这样,我们自定义一个类呢? 还是[type],那如果使用python2,不继承object类呢? 哎,果然,不继承object类就没事了,但它是还是一个类对象(classobj)啊,换句话说它还是一个对象啊,那我们用isinstance看看test是不是对象呢? 返回True,果然是啊,那再看看基类object呢? 还是这个[ty…
python 类(object)的内置函数 # python 类(object)的内置函数 ### 首先 #### 以__双下划线开头的内置函数 __ #### __往往会在某些时候被自动调用,例如之前了解的__next__的函数,和__init__函数, 这类函数 还有一些常用的: #### 1 .isintance 2. issubclass ```python isinstance(obj , cls) class Foo (object): pass obj = Foo () isins…
英文文档: exec(object[, globals[, locals]]) This function supports dynamic execution of Python code. object must be either a string or a code object. If it is a string, the string is parsed as a suite of Python statements which is then executed (unless a…
魔法函数 __init__函数 init函数会在实例化A这个类的时候被调用 class A(): def __init__(self): print('__init__函数') a = A() 显示结果: __init__函数 __call__函数 class A(): def __call__(self): print('__call__函数') a = A() a() 显示结果: 但类被当成一个函数的时候会被调用 如果不写A类的call函数的话,会怎么在运行程序会怎么样呢? Tracebac…
英文文档: exec(object[, globals[, locals]]) This function supports dynamic execution of Python code. object must be either a string or a code object. If it is a string, the string is parsed as a suite of Python statements which is then executed (unless a…
阅读目录 一 三元表达式.列表推导式.生成器表达式 二 递归与二分法 三 匿名函数 四 内置函数 五 阶段性练习 一. 三元表达式.列表推导式.生成器表达式 1 三元表达式 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 2 列表推导式 #1.示例 egg_list=[] for i in range(10): egg_list.append('鸡蛋%s' %i) egg_list=['鸡蛋%s' %i…
面向对象进阶博客地址链接: http://www.cnblogs.com/Eva-J/articles/7351812.html 复习昨日内容: # 包 # 开发规范 # # hashlib # 登录验证 密文密码检测 # 密文存储 # 加盐 # 动态加盐 # 检测文件一致性 md5 #MD5.update() # configparser : 配置文件相关 #网络编程 ftp #[section1] #o1 = yes # logging : 日志 #记录一些信息和结果 #打日志 #日志就和p…
反射 几个反射相关的函数可参考python基础(10)-匿名函数&内置函数中2.2.4反射相关 类的一些内置函数 __str__()&__repr__() 重写__str__()函数类似重写java中的toString()函数.当没有重写__str__()但重写了__repr__()函数时,__repr__()函数会充当一个__str__函数的替代函数执行 class Person1: def __init__(self, name, age): self.name = name self…
__init__():__init__方法在类的一个对象被建立时,马上运行.这个方法可以用来对你的对象做一些你希望的初始化.注意,这个名称的开始和结尾都是双下划线.代码例子: #!/usr/bin/python# Filename: class_init.pyclass Person:    def __init__(self, name):        self.name = name    def sayHi(self):        print 'Hello, my name is',…
啥?我靠,类也有内置函数?哈哈,确实有的.有哪些呢?请往下看 issubclass(cls, class_or_tuple, /) 1.基本属性: 方法全是特殊方法 2.使用方法:判断一个类是否由另一个类派生(继承) 先说说里面的参数,第一个cls即是class,类的意思.第二个class_or_tuple是类或者元组(下同) 当第一个参数类是第二个参数类的子类,那么就返回True,属于非严格性道德检测: 1)一个类被认为是其自身的子类 2)class_or_tuple可以是类对象组成的元组,只…
__str__()__repr__()__len__() str() 转字符串repr() 让字符原形毕露的方法len() 计算长度 内置的方法很多,但是并不是全部都在object中,比如len(),__len__(),比如说数字,时间,还有对象都是无法计算长度 # __del__ 析构函数 # 删除,python解释器本身也会自动删除 class A: def __del__(self): print("执行我啦") a = A() # del a # 这里不些括号也行 del(a)…
内置函数——eval.exec.compile eval() 将字符串类型的代码执行并返回结果 print(eval('1+2+3+4')) exec()将自字符串类型的代码执行 print(exec("1+2+3+4")) exec("print('hello,world')") code = ''' import os print(os.path.abspath('.')) ''' code = ''' print(123) a = 20 print(a) ''…
关于类与对象的一些常用BIF(内置函数) 1.issubclass(class,classinfo) 含义:如果class是classinfo的子类,则返回True,否则返回false,用来判断子类关系 2.isinstance(objiect,classinfo) 含义:检查一个实例对象是否属于一个类,第一个参数为实例对象,第二个为类 3.hasattr(object,name) 作用:测试一个对象(object)是否具有固定的属性(name),属性必须带“ ”,表明是字符串. 4.getat…
今日内容:1.常用模块2.面向对象编程(*****)    介绍面向对象编程    类    对象3.内置函数------------------------------1.面向过程编程    核心“过程”二字,过程指的是解决问题的步骤,即先干什么再干什么后干什么    基于该思想编写程序就好比在设计一条流水线,是一种机械式的思维方式    优点:复杂的问题流程化,进而简单化    缺点:可扩展性差2.面向对象编程    核心“对象”二字,对象是特征与技能的结合体    基于该思想编程就好比创造…