day021|python之面向对象进阶1】的更多相关文章

面向对象进阶 目录 面向对象进阶 1 继承 1.1 继承入门 1.1.1 继承基础 1.1.2 类的基本使用 1.2 多继承 1.2.1 多继承的基本使用 1.2.2 多继承以后的重复性 1.3 类的类型 1.3.1 新式类 1.3.2 经典类 1.4 继承与抽象 1.4.1 抽象的两个层次 1.4.2 继承 1.4.3 示例 1.5 继承的运用 1.5.1 选课系统 1.5.2 选课系统进阶1.0 1.6 属性查找 1.6.1 对象的属性 1.6.2 案例 1.7 super实现选课系统 1.…
python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__() 和 __deltattr__()这三个通过属性的方式的三个方法 还有__getitem__(), __setitem__() 和 __delitem__()这三个函数, 是通过字典形式来处理属性 字典形式使用中括号的方式获取值 在实现__setitem__()的时候仍然需要使用__dict__来…
python基础--面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo: pass obj=Foo() print(isinstance(obj,Foo)) #判断是不是类的对象 输出结果为: True issubclass(sub, super)检查sub类是否是 super 类的派生类 class Bar(): pass class Foo(Ba…
Python 3 面向对象进阶 一.    isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() isinstance(obj, Foo) issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass i…
一.什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩. 二.四个可以实现自省的函数(下列方法适用于类和对象) 1.hasattr(object,name) 判断object中有没有一个name字符串对应的方法或属性 2.getattr(object, name, default=None)…
一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() isinstance(obj, Foo) issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass issubclass(Bar, Foo)…
封装.property装饰器 封装分为3种情况:封装对象的属性.封装类的属性.封装方法. 封装对象的属性:(在属性名前加双下划线__) class Person: def __init__(self,height,weight,name,sex): self.__height = height #私有对象属性:不在外面调它 self.__weight = weight self.__name = name self.__sex = sex def bmi(self): return self._…
isinstance和issubclass isinstance(obj,cls)检查是否obj是否是类 cls 的对象或者子类的对象 class Foo(object): pass class bar(Foo): pass obj = Foo() sinstance(obj, Foo) == True issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass issubcla…
一 classmethod class Classmethod_Demo(): role = 'dog' @classmethod def func(cls): print(cls.role) Classmethod_Demo.func() staticmethod class Staticmethod_Demo(): role = 'dog' @staticmethod def func(): print("当普通方法用") Staticmethod_Demo.func() clas…
1.isinstace和issubclass 2.staticmethod和classmethod 3.反射(hasattr.getattr.setattr.delattr等四个方法) 4.内置方法 5.logging 6异常处理 7hashlib摘要算法 1.isinstace和issubclass  isinstace判断一个对象是否是一个类的对象.与type的区别:判断对象类型时一定要用type. class Foo: pass class Son(Foo): pass s = Son()…