继承和多态 继承的好处: 1,子类可以使用父类的全部功能 2,多态:当子类和父类都存在相同的方法时,子类的方法会覆盖父类的方法,即调用时会调用子类的方法.这就是继承的另一个好处:多态. 多态: 调用方只管调用,不管细节,当我们新增一种Animal的子类时,只要确保run( )方法编写正确,不用管原来的代码是如何调用的.这就是著名的“开闭”原则: 对扩展开放:允许新增Animal的子类 对修改封闭:不需要修改依赖Animal类型的run_twice( )等函数 静态语言VS动态语言 对于静态语言(…
Python帮助函数调试函数 用于获取对象的属性及属性值 刚接触Python,上篇 <Python入门>第一个Python Web程序--简单的Web服务器 中调试非常不方便,不知道对象详细有什么属性,包括什么值,所以写了一个函数.用于获取对象的属性及属性值 函数代码例如以下: #调试函数.用于输出对象的属性及属性值 def getAllAttrs(obj): strAttrs = '' for o in dir(obj): strAttrs =strAttrs + o + ' := ' +…
python中的is判断引用的对象是否一致,==判断值是否相等 a = 10 b = 20 list = [1,2,3,4,5] print(a in list) print(b not in list) a = 20 print(a in list) print(a is b) print('*'*20) c = 'c' d = 'c' print(c is d) # True 这个是个变量缓存的概念 c = 'c'*10000 d = 'c'*10000 print(c is d) # Fa…
获取对象信息1.使用isinstance()判断class类型2.dir() 返回一个对象的所有属性和方法3.如果试图获取不存在的对象会抛出异常[AttributeError]4.正确利用对象内置函数的例子: def readImage(fp): if hasattr(fp,"read"): return readData(fp) return None 实例属性和类属性1.一句话,Python是动态语言,根据类创建的实例可以任意绑定属性.    注意:实例属性和雷属性的名字要保持不一…
可枚举属性和不可枚举属性 在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的.可枚举性决定了这个属性能否被for-in查找遍历到. 可枚举属性 enumerable值为 true,Object对象的propertyIsEnumerable()方法可以判断此对象是否包含某个属性,并且这个属性是否可枚举.可以通过for...in , Object.keys, Json.stringify 方法枚举. for...in 获取自身可枚举属性 var…
php的对象属性 我们知道获取php的对象属性用箭头: echo $obj->name; 如果属性名是一个变量,那么可以用: $var = 'name'; echo $obj->$var; 考虑如下的结构,是一个MongoDB的BSON Object: stdClass Object ( [_id] => 711 [1] => stdClass Object ( [win] => 8372907 ) ) echo $obj->_id; // ok foreach ([1…
使用 Object.keys(object) 可以取出属性名为数组,但会打乱顺序 严格意义上对象中是只有映射关系而没有顺序的,但是在存储结构里是有顺序的,如果想获取存储结构里的第一个属性可以使用for遍历出第一个属性的属性名,从而获得第一个属性 function get_object_first_attribute(data){ for (var key in data) return data[key]; }…
背景: 开发中经常遇到取值属性的时候,需要校验数值的有效性. 例如: 获取props对象里面的friends属性 props.user && props.user.friends && props.user.friends[0] && props.user.friends[0].friends 对于深层的对象,代码会写的特别长,为了避免这种情况,可以使用现成的方法. 方法一:babel-plugin-idx插件 import idx from 'idx';…
上次对Stream流来进行分组的文章很多人看,想看的可以来这: Stream流来进行集合分组 这次小编又带来Stream的去重,话不多数,直接上代码: 这是对简单数据类型的去重 //字符串集合进行简单的去重(其他数据类型去重一样) List<String> stringList = Arrays.asList("伽罗", "貂蝉", "芈月", "伽罗"); //jdk1.8Stream来去重 stringList…
python的排序参见文章http://blog.csdn.net/longshenlmj/article/details/12747195 这里介绍 import operator模块 operator的itemgetter函数用于获取传入参数中某个域的值,如 a = [1,2,3]  >>> b=operator.itemgetter(1)      //定义函数b,获取对象的第1个域的值 >>> b(a)  2  >>> b=operator.i…