Python 面向对象进阶2

[TOC] 1 setitem getitem delitem 把 对象操作属性模拟字典格式123456789101112131415class Foo: def __init__(self,name): self.name=name def __getitem__(self, item): return self.__dict__[item] # getitem 通过return返回 def __setitem__(self, key, value): self.__dict__[key]=value # 真正操作的是字典中的 def __delitem__(self,key): # self....

阅读全文

Python 面向对象进阶

1 isinstance 和issubclass instance:判断该对象是否是类的对象 isinstance(obj,Foo) 12x = []print(isinstance(x,list)) 结果:True issubclass:判断是否是继承123456class Foo: passclass Bar(Foo): passprint(issubclass(Bar,Foo)) 结果:True 通过下面的方式也可以查看print(Bar.base) 2 反射 反射是Smi首次提出的,主要指程序可以访问、检测和修改它本身状态行为的一种能力,也可以叫做自省 2.1面向对象中的反射面向对象中的反射,是通过字符串形式操作对象的属性,Python中一切都是对象,都可...

阅读全文

Python 静态方法 类方法

通常情况下,类中函数中定义的所有函数,,都是对象的绑定方法,除此之外,还有专门的静态方法和类方法,这两个是专门给类使用的,但是对象非要调用也是不会报错的。 对象在调用的时候会把自己传递给self,也就是绑定方法的第一个参数。 1 静态方法 这里定义spam的时候没有self,而是传入了xyz,类在使用的时候必须传入3个参数1234567class Foo: @staticmethod # spam = staticmethod(apam) def spam(x,y,z): print(x,y,z) # spm = staticmethod(spam)Foo.spam(1,2,3) 应用场景首相先了解下时间模块的使用1234567>>>...

阅读全文

Python 封装补充

property属性property实际是setter getter deleter是集合体,并不是一个单独的方法 123456789101112131415161718import math # 使用的库class Circle: def __init__(self,radius): #定义圆的半径 self.radius = radius @property # area = property(area) # def area(self): return math.pi * self.radius**2 # 在类内部的函数,返回值 @property def peirimeter(self): re...

阅读全文

Python 的多态与多态性

多态:是指一类事物有多种形态(!!!!定义角度!!!!) 多态性:在继承的基础上, (!!!!使用角度!!!!!) 使用多态性,实现了利用函数统一调用一个接口 多态 1234567891011121314151617181920212223242526#多态:同一种事物的多种形态,动物分为人类,猪类(在定义角度)class Animal: def run(self): raise AttributeError('子类必须实现这个方法')class People(Animal): def run(self): print('人正在走')class Pig(Animal): def run(self): print('pig ...

阅读全文

© 2018 Peter's Blog Center All Rights Reserved.
Theme by hiero