day23-2 __call__、__str__和__del__】的更多相关文章

目录 __call__ __str__ __del__ __call__ 对象后面加括号调用时,会自动触发执行 注:构造方法的执行是由创建对象触发的,即:对象=类名();而对于__call__方法的执行是由对象后加括号触发的,即:对象()或者类()() class Foo: def __init__(self, name, age): print('from init') def __call__(self, *args, **kwargs): print(self, args, kwargs)…
1,封装 ## 什么是封装 what 对外隐藏内部的属性,以及实现细节,并给外部提供使用的接口 学习封装的目的:就是为了能够限制外界对内部数据的方法 注意 :封装有隐藏的意思,但不是单纯的隐藏 python 中属性的权限分为两种: 1,分开的 没有任何限制,谁都可以访问 2,私有的 只有当前类本身能够访问 默认为公共的 ##如何封装 how 为什么要封装: 1,提高安全性 (封装属性) 2,隔离复杂度 (封装方法) 一个类中分为两种数据,属性和方法: 封装属性: class Student: d…
class Www: def __init__(self,name): self.name=name def __str__(self): return '名称 %s'%self.name #__repr__=__str__ *这是在__str__转换__repr__函数的偷懒小方法 #__str__函数是可以直接把对实例进行调用并得到使用 '''交互模式: 方法一>>> print(Www('实验')) 方法二>>> s=Www('实验') >>>…
一.内置函数的补充 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…
一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() print(isinstance(obj, Foo)) issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass print(issubcla…
__call__ 方法 __call__ 是当对象被调用时会调用的方法,允许一个对象(类的实例等)像函数一样被调用,也可以传入参数. 1 class Foo(): 2 def __init__(self, x, y): 3 self.x = x 4 self.y = y 5 6 def __call__(self, m, n): 7 print('x is %s, y is %s, m is %s, n is %s' % (self.x, self.y, m, n)) 8 9 Foo(1, 2)…
1.def__init__()方法: class Cat: """定义了一个Cat类""" #初始化对象 def __init__(self, new_name, new_age): self.name = new_name self.age = new_age #方法 def eat(self): print("猫在吃鱼....") def drink(self): print("猫正在喝kele.....&quo…
7.10 反射 下述四个函数是专门用来操作类与对象属性的.通过字符串来操作类与对象的属性,这种操作称为反射 class People: country="China" def __init__(self,name): self.name=name def tell(self): print('%s is aaa' %self.name) ​ obj=People('egon') hasattr: print(hasattr(People,'country')) #True print(…
class Test(object): def __init__(self): self.name = "汪 汪" self.girl = "liu cc" # 对象当作方法使用回调 def __call__(self, lover): return lover # 打印对象 def __str__(self): return "%s loved %s" % (self.name, self.girl) if __name__ == "…
关于__new__()的用法参考: http://www.myhack58.com/Article/68/2014/48183.htm 正文: 一.__new__()的用法: __new__()是在新式类中新出现的方法,它作用在构造方法建造实例之前,可以这么理解,在Python 中 存在于类里面的构造方法__init__()负责将类的实例化,而在__init__()启动之前,__new__()决定是否 要使用该__init__()方法,因为__new__()可以调用其他类的构造方法或者直接返回别…