铁乐学python_day24_面向对象进阶1_内置方法 题外话1: 学习方法[wwwh] what where why how 是什么,用在哪里,为什么,怎么用 学习到一个新知识点的时候,多问问上面的四个问题,并了解和实践透彻. 什么是反射? 先不说枯燥的概念,你可以自己总结出来,对于python中的反射,什么时候会用到? 需要使用字符串数据类型的变量名来使用变量的时候用到反射. (通过字符串的形式操作对象相关的属性和方法.) 关键词:字符串 使用到字符串的场景多在: 1)文件中存储的是字符串…
铁乐学python_day23_面向对象进阶1_反射 以下内容大部分摘自博客http://www.cnblogs.com/Eva-J/ isinstance()和issubclass() 两者的返回值都是布尔值 isinstance() 能够检测到继承关系 type() 只能单纯的判断类 isinstance() 判断一个对象和一个类有没有血缘关系 issubclass() 接收两个参数,前一个是子类名,后一个是父类名 如果返回True,说明有父子(继承)关系. isinstance(obj,c…
一.__new__方法 __init__()是初始化方法,__new__()方法是构造方法,创建一个新的对象 实例化对象的时候,调用__init__()初始化之前,先调用了__new__()方法 __new__()必须要有返回值,返回实例化出来的实例 def __new__(cls, *args, **kwargs): 例子 class Foo: ​ def __init__(self,name): self.name = name ​ def __new__(cls, *args, **kwa…
一.__call__ 对象后面加括号,触发执行类下面的__call__方法. 创建对象时,对象 = 类名() :而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()() class Foo: ​ def __call__(self, *args, **kwargs): print("我执行啦") ​ f = Foo() f() #对象加括号调用执行类下的__call__方法 #输出结果 我执行啦 二.__next__和__iter__实现迭代器协议 迭…
一.__getattribute__ object.__getattribute__(self, name) 无条件被调用,通过实例访问属性.如果class中定义了__getattr__(),则__getattr__()不会被调用(除非显示调用或引发AttributeError异常) class Foo: ​ def __init__(self,x): self.x = x ​ def __getattr__(self, item): print("执行__getattr__") ​…
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max-width: 100%; vertical-align: middle; } button, input, select, textarea { color: inherit; font: inherit; } input[type="checkbox"], input[type=&quo…
一. 反射 1. isinstance()和issubclass() isinstance( 对象名, 类名) : 判断对象所属关系,包括父类  (注:type(对象名) is 类名 : 判断对象所属关系,只包括当前的类.) issubclass(类名, 类名) : 判断类与类之间的继承关系 class A: pass class B(A): pass b = B() print(isinstance(b, B)) # True 判断对象b是否属于B类 print(isinstance(b, A…
一.反射 什么是反射:可以用字符串的方式去访问对象的属性,调用对象的方法(但是不能去访问方法),python中一切皆对象,都可以使用放射. 反射的四种方法: hasattr:hasattr(object.name)判断一个对象是否有name属性或者是name方法.有就返回True,没有就返回False getattr:获取对象的属性或者方法,如果存在则打印出来. serattr:给对象的属性赋值,若属性不存在,先创建后赋值 delattr:删除该对象指定的一个属性 二.内置方法 https://…
在程序开发中,要设计一个类,通常需要满足以下三个要求: [1]类名 这类事物的名字,满足大驼峰命名法 [2]属性 这类事物具有什么样的特征 [3]方法 这类事物具有什么样的行为 定义简单的类: 定义只包含方法的类: 当一个类定义完成之后,要使用这个类来创建对象,语法格式如下: 对象变量=类名()需求:小猫爱吃鱼,小猫要喝水 不同打印格式: 哪一个对象调用的方法,self就是哪一个对象的引用 [1]基础概念 我们现在已经知道了使用 类名() 就可以创建一个对象 当使用类名()创建对象时,pytho…
封装 隐藏对象的属性和实现细节,近对外提供公共访问方式 广义:代码保护,面向对象思想 狭义:将属性,方法隐藏起来 class Person: __key = 123456 # 私有的静态属性 def __init__(self,name,passwd): self.name = name self.__passwd = passwd # 私有的属性 def __test(self): # 私有方法 print(self.__dict__) print('私有方法内部调用') ## 只要在类的内部…