foo

Python自学第十六周(2)

你离开我真会死。 提交于 2019-11-28 00:54:36
函数分类 普通函数 function func(){ } 匿名函数 setInterval(function(){ console.log(123); },5000) 自执行函数 (function(arg){ console.log(arg); })(1) 序列化 把一个对象转换成字符串 JSON.stringify(li) 字符串转换为对象 JSON.parse(s) 转义 客户端(cookie) ==》》请求服务器端 将数据经过转义后,保存在cookie中 decodeURI( ) URl中未转义的字符 decodeURIComponent( ) URI组件中的未转义字符 encodeURI( ) URI中的转义字符 encodeURIComponent( ) 转义URI组件中的字符 escape( ) 对字符串转义 unescape() 给转义字符串解码 URIError 由URl的编码和解码方法抛出 eval 执行eval和exec 时间 Date类 var d = new Date() 作用域 1、以函数作为作用域 2、函数的作用域在函数未被调用之前就已经创建 3、函数的作用域存在作用域链,并且也是在调用之前就创建了 4、函数内局部变量提前声明 面向对象 例如 function Foo(n){ this.name = n; } var obj = new Foo("we

帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)

强颜欢笑 提交于 2019-11-27 15:41:30
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/cc18868876837/article/details/81211729 文章目录 1. 前言 2. _ _ proto _ _ 属性 3. prototype属性 4. constructor属性 5. 总结 提示:不要排斥,静下心来,认真读完,你就搞懂了!(可以先看一下最后的总结部分再回过头来完整看完) 1. 前言   作为一名前端工程师,必须搞懂JS中的 prototype 、 __proto__ 与 constructor 属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞懂它们。这里说明一点, __proto__ 属性的两边是各由两个下划线构成(这里为了方便大家看清,在两下划线之间加入了一个空格: _ _proto_ _ ),实际上,该属性在ES标准定义中的名字应该是 [[Prototype]] ,具体实现是由浏览器代理自己实现,谷歌浏览器的实现就是将 [[Prototype]] 命名为 __proto__ ,大家清楚这个标准定义与具体实现的区别即可(名字有所差异,功能是一样的)。本文基于谷歌浏览器(版本 72.0.3626.121)的实验结果所得。   

继承与派生

家住魔仙堡 提交于 2019-11-27 11:10:13
一、继承与派生 1 、继承介绍 2 、继承的作用 3、如何实现继承 3.1 如何查看父类 二、寻找继承关系 1、如何寻找继承关系: 2、继承有什么用处 三、在继承背景下对象属性的查找顺序 四、派生 1、什么是派生 2、派生后继承关系查找验证 五、子类继承父类 派生出自己的属性和方法,并且重用父类的属性与方法 1、两种解决办法 1.1 直接引用父类的__init__ 1.2 使用super 六、了解 1、经典类与新式类 1.1 新式类 1.2 经典类 2、super严格遵循mro继承顺序 3、钻石继承(菱形继承) TOC 一、继承与派生 1 、继承介绍 继承是一种新建类的方式,新建的类称之为子类或派生类,继承的父类称之为 基类 或 超类 在python中,一个子类可以继承多个父类 在其他语言中,一个子类只能继承一个父类 2 、继承的作用 减少代码的冗余 3、如何实现继承 先确认谁是子类,谁是父类 在定义子类时, 子类名(父类名) # 父类 class Father1: x = 1 pass class Father2: pass # 子类 class Sub(Father1, Father2, Father3): pass 3.1 如何查看父类 子类.__bases__ 查看父类 print(Sub.__bases__) # 查看父类 <class '__main__

Python之面向对象

邮差的信 提交于 2019-11-27 08:08:40
创建类:   class class_name(upper):      类的初始化:    1 class Test: 2 3 def __init__(self, foo): 4 self.__foo = foo 5 6 def __bar(self): 7 print(self.__foo) 8 print('__bar') 9 10 ... 11 __var 12 __function_name() 13 以双下划线开头的表示私有属性或方法 14 可以用getter或setter方法获得 15 16 定义getter方法 17 @property 18 def name(参数): 19 return or print() 20 21 @name.setter 22 def name(参数): 23 self._name=name 24 25 必须现有getter方法才能设置setter方法 26 ... 27 28 29 还可以以一种方法访问: 30 31 class Test: 32 33 def __init__(self, foo): 34 self.__foo = foo 35 36 def __bar(self): 37 print(self.__foo) 38 print('__bar') 39 40 41 def main(): 42 test = Test(

mongoDB操作命令,摘自官方helper

自闭症网瘾萝莉.ら 提交于 2019-11-27 04:07:48
help show help show dbs show database names show collections show collections in current database show users show users in current database show profile show most recent system.profile entries with time >= 1ms use <db name> set curent database to <db name> db.addUser (username, password) db.removeUser(username) db.cloneDatabase(fromhost) db.copyDatabase(fromdb, todb, fromhost) db.createCollection(name, { size : ..., capped : ..., max : ... } ) db.getName() db.dropDatabase() // runs the collstats] command on each collection in the database db.printCollectionStats() db.currentOp() displays the

原型

偶尔善良 提交于 2019-11-27 03:24:50
1.函数(function) 2.函数对象(function object) 3.本地对象(native object) 4.内置对象(build-in object) 5.宿主对象(host object) prototype属性是每一个函数都具有的属性,但是不是一个对象都具有的属性。比如 function Foo(){ } var foo = new Foo();其中Foo中有prototype属性,而foo没有。但是foo中的隐含的__proto__属性指向Foo.prototype比如 oo.__proto__ === Foo.prototype__proto__属性是每一个对象以及函数都隐含的一个属性。对于每一个含有__proto__属性,他所指向的是创建他的构造函数的prototype。原型链就是通过这个属性构件的。 来源: https://www.cnblogs.com/jiangquhan/p/11341716.html

封装之如何隐藏属性

佐手、 提交于 2019-11-27 02:58:59
class A: __x = 1 # _A__x = 1 def __init__(self,name): self.__name=name # self._A__name = name def __foo(self): # _A__foo print('run foo')# print(A.__dict__)'''{'__module__': '__main__', '_A__x': 1, '__init__': <function A.__init__ at 0x0000017B28A1F950>, '_A__foo': <function A.__foo at 0x0000017B28A1F488>, '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None}''''''这种变形的特点: 1、外部无法直接使用:obj.__AttrName 2、在类内部是可以直接使用:obj.__AttrName 3、子类无法覆盖父类__开头的属性'''class A: def foo(self): print('A foo') def bar(self): print('A bar') self.foo(

变量的解构赋值

落爺英雄遲暮 提交于 2019-11-27 02:33:24
ES6允许按照一定的模式,从数组或对象中提取值,并对变量进行赋值。等式右边的必须是可迭代对象,否则就会报错。 例如 let [q, w, e] = [1, 2,3], 左右需要对应,如果左边长度大于右边长度,则解构不成功,左边为获取值的变量为undifined。如果右边长度大,则解构成功, 解构是允许赋予默认值,例如 let [a, b =1] = ['a'] b //1 es6中使用严格相等的运算符,如果一个位置上没值即严格等于undefined(null不算)才会使用默认值,例如: let [x=1] = [2] x //2 对象的解构 对象的解构是没有次序的,变量必须要跟属性同名,才能取到值: 1 let {aa, bb} = {bb:1, aa :2}; 2 aa // 2 3 bb //1 4 5 let {foo} = {bar :2}; 6 foo // undifined View Code 实际上,对象的解构赋值的内部机制实现找到同名的属性,然后赋值给对应的变量,即冒号左面的匹配模式,右面的是变量或值,例如: 1 let {foo:foo, bar:bar} = {foo:'hello', bar:'world!'}; 2 foo // hello 3 bar // world 4 5 let {foo:bar} = {foo:'hello', bar:

面向对象之:类的成员

坚强是说给别人听的谎言 提交于 2019-11-26 13:06:37
1.类的私有成员公有成员 # 类的私有成员: 私有类的静态属性, 私有类的方法, 私有对象的属性 对于每一个类的成员而言都有两种形式: 公有成员,在任何地方都能访问 私有成员,只有在类的内部才能方法 私有成员和公有成员的访问限制不同 : 1.1静态字段(静态属性) 公有静态字段:类可以访问;类内部可以访问;派生类中可以访问 私有静态字段:仅类内部可以访问 公有静态属性(字段) class C: name = "公有静态字段" def func(self): print C.name class D(C): def show(self): print C.name C.name # 类访问 obj = C() obj.func() # 类内部可以访问 obj_son = D() obj_son.show() # 派生类中可以访问 # 公有静态字段 私有静态属性(字段) class C: __name = "私有静态字段" def func(self): print C.__name class D(C): def show(self): print C.__name C.__name # 不可在外部访问 obj = C() obj.__name # 不可在外部访问 obj.func() # 类内部可以访问 obj_son = D() obj_son.show()

8.6 面向对象编程基础

淺唱寂寞╮ 提交于 2019-11-26 12:08:05
类和对象 简单的说,类是对象的蓝图和模板,而对象是类的实例。这个解释虽然有点像用概念在解释概念,但是从这句话我们至少可以看出,类是抽象的概念,而对象是具体的东西。在面向对象编程的世界中,一切皆为对象,对象都有属性和行为,每个对象都是独一无二的,而且对象一定属于某个类(型)。当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定义出一个叫做“类”的东西。 函数的写法 """ 标识 函数名字 (): 有冒号就要缩进一个tab 在Python中所有的函数都有返回值,如果你没有给予return则默认返回出None,如果你给予了,则返回你给予的值 """" def funcName(): . .... return .... """ 标识 类名 () : 有冒号就要缩进一个tab """ class className(object): ........ """ 1.导入库, import 库名 2. for 循环,如果计数的情况则使用 开始 结束 不长 range的区间是一个前闭后开. range(start,end,[step]) 3. 格式化输出 3.1 %-->%(),%d后接整型,%f后接浮点,%s后接字符串. 3.2 {}-->format(),它可以直接传入任何类型,然后格式化输出. 4.print 控制台(terminal)打印 4.1