上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
摘要: # __next__和__iter__实现迭代器协议 class Foo: def __init__(self, n): # 初始化 self.n = n def __iter__(self): # 定义类的__iter__方法,实例化时就为一个可迭代对象 return self def __next__(self): # 定义类的_... 阅读全文
posted @ 2018-08-13 21:17 四十不惑的编程之路 阅读(506) 评论(0) 推荐(0)
摘要: # __slots__ __doc__ __module__ __class__ __del__ __call__ # __slots__ 定义在类中的类属性,如果你有一个属性很少的类,但是有很多实例,为了节省内存可以使用__slots__ # 在类当中定义了__slots__,实例就没有自己的属性字典__dict__只能使用__slots__提供的属性且不能新增其它属性 # 实例查看属性时不... 阅读全文
posted @ 2018-08-13 20:01 四十不惑的编程之路 阅读(125) 评论(0) 推荐(0)
摘要: # __getitem__ __setitem__ __delitem__ # 只适用于类似操作字典的操作才会触发 class Foo: def __getitem__(self, item): print('调用了__getitem__') return self.__dict__[item] def __setitem__(self, key... 阅读全文
posted @ 2018-08-13 20:00 四十不惑的编程之路 阅读(150) 评论(0) 推荐(0)
摘要: # __str__ __repr__ 与 __format__ class Foo: def __init__(self, year, month, day): self.year = year self.month = month self.day = day def __str__(self): return ... 阅读全文
posted @ 2018-08-13 20:00 四十不惑的编程之路 阅读(170) 评论(0) 推荐(0)
摘要: # isinstance issubclass 与系统内置属性 __getattribute__ # isinstance(obj, cls)检查obj是否是类cls的实例 class Foo: pass obj = Foo() print(isinstance(obj, Foo)) # True 判断obj是否是Foo类的实例 mystr = 'hello world' pr... 阅读全文
posted @ 2018-08-13 00:20 四十不惑的编程之路 阅读(140) 评论(0) 推荐(0)
摘要: # 二次加工系统的标准类型 # 1、通过继承系统的类来完成包装, 定制自己的数据类型 class List(list): # 定义了一个List类,继承自系统中的list类 def append(self, p_object): # 重写了append方法,改为只能添加字符串 if type(p_object) is str: super()... 阅读全文
posted @ 2018-08-12 23:15 四十不惑的编程之路 阅读(229) 评论(0) 推荐(0)
摘要: # 类的内置attr属性 class Foo: x = 1 def __init__(self, y): self.y = y def __getattr__(self, item): # 当实例调一个不存在的属性时才触发此方法 print('执行__getattr__,你查找的属性【%s】不在在' % item) def... 阅读全文
posted @ 2018-08-12 23:14 四十不惑的编程之路 阅读(334) 评论(0) 推荐(0)
摘要: # 反射(也称为自省) # 反射的概念:指程序可以访问、检测和修改它本身状态或行为的一种能力 # 四个可以实现反射的函数 # 下列方法适用于类和对象 # hasattr(object, name) 第一个参数传对象,第二个参数传一个字符串 # 判断object中有没有name属性 class A: a = 'aaa' def __init__(self, name, add... 阅读全文
posted @ 2018-08-12 01:45 四十不惑的编程之路 阅读(172) 评论(0) 推荐(0)
摘要: # 面向对象的三大特性之封装 # 第一个层面的封装:类就是麻袋,这本身就是一种封装 # 第二个层面的封装:类中定义私有的,只在类内部使用,外部无法访问 # 约定一:任何以单下划线开头的名字都应该是内部的,私有的 # 约定二:双下划线开头的名字(如__name),外部无法直接访问,因为这种双下划线开头的名字已经被python转化为 _类名__name # 第三个层面的封装:明确区分内外,内部的实... 阅读全文
posted @ 2018-08-12 00:55 四十不惑的编程之路 阅读(122) 评论(0) 推荐(0)
摘要: # 面向对象的三大特性之多态 # 多态 由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同 # 多态的概念指出了对象如何通过他们的属性和动作来操作及访问,而不需要考虑他们具体的类 # 多态表明了动态(运行时)绑定的存在,允许重载及运行时类型确定和验证 # 多态是由同一个类实例化出的多个对象,这些对象执行方法时,执行的过程和结果是不一样的 class H2O: # 定义了一个水的基类... 阅读全文
posted @ 2018-08-11 23:43 四十不惑的编程之路 阅读(119) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页