- 博客(97)
- 收藏
- 关注
原创 15. 对象的封装、继承、方法重写、object类、多态、特殊方法和特殊属性
object有一个__str__()方法,用于返回一个对于"对象的描述",对应于内置函数str()经常用于print()方法,__len__() 通过重写__len__()方法。将数据(属性)和行为(方法)包装到类对象中,在方法内部对属性进行操作,在类对象对外部调用方法。__dict__() 获得类对象或实例对象所绑定的所有属性和方法的字典。object类是所有类的父类,因此所有类都有object类的属性和方法。帮助我们查看对象的信息,所以我们经常会对__str__()进行重写。封装:提高程序的安全性。
2022-10-03 21:57:07
295
原创 14. 类
类名.方法名(类对象),实际上就是方法定义处的 self。对象名.方法名() student1.info()修饰符 @staticmethod 使用类名直接访问的方法。修饰符 @classmethod 使用类名直接访问的方法。既可以获取构造函数定义的变量,也可以获取类的属性值。命名:由一个或多个单词组成,每个单词的首字母大写,其余小写。不能获取构造函数定义的变量,也不可以获取类的属性。属性:类方法外的变量称为类属性,被该类的所有对象所共享。不能获取构造函数定义的变量,可以获取类的属性。
2022-09-30 13:45:02
402
原创 13. 异常处理
如果try块没有抛错,则执行else块,如果try抛错,执行except块。# 无论是否发生异常finally块都会被执行,常用来释放try块中申请的资源。
2022-09-25 16:51:39
148
原创 12.函数
定义函数时,如果个数可变的关键字形参和位置形参都需要时,位置形参要放到关键字形参前面。def fun(a,b,*,c,d) # *之后的参数,在函数调用时,只能采用关键字参数传递。定义函数时,看你无法确定传递的位置实参的个数时,可以使用位置参数。定义函数时,无法确定传递的实参的个数时,使用可变的关键字形参。返回多个数据,则为元组类型 return 1,2,3。使用 ** 定义个数可变的关键字形参。局部变量:在函数内定义都变量可以在函数内使用。使用 *定义个数可变的位置形参。
2022-09-19 23:09:46
176
原创 10. 元组、集合
t[0] = 2 直接赋值会报错,但是可以改变列表的值,比如 t[1].append(3)2. 使用内置函数 tuple(). t1 = tuple((1,2,3,4))使用内置函数set() s = set(1,24,5)如果只创建一个元素的元组,必须要有逗号 t2 = (1,)update(),至少添加一个元素, 可以添加 元组,集合,列表。使用 花括号 s = {1,2,4,5}discard(),一次删除一个元素,如果不存在不抛出异常。1. 使用小括号 () t = (1,2,3)
2022-09-13 23:27:50
165
原创 9. 字典
删除:del scores['张三']. 清空:clear(scores) 新增/修改 scores['Jack'] = 90。字典的所有元素都是一个 key- value,key不允许重复(如果重复,后面会覆盖前面),value可以重复。scores.get('王五', 20), 如果不存在 '王五' 的值,返回20。输出为:{ 'Fruits': 93, 'Book':88, 'Others':11 }使用花括号. scores = { '张三': 100, '李四': 80 }
2022-09-04 22:26:38
122
原创 7. 内置函数range()、循环结构
不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素。3. range(start,stop,step) 创建一个[start,stop]之间的整数序列,步长为step。2. range(start,stop) 创建一个[start,stop]之间的整数序列,步长为1。1. range(stop) 创建一个[0,stop]之间的整数序列,步长为1。for else 语句。
2022-09-04 15:38:07
417
原创 6. 布尔值为False的对象
python一切皆对象,所有对象都有一个布尔值。获取方法:使用内置函数 bool()pass 只是个占位符,什么都不做。以下对象的布尔值为False。其他对象的布尔值均为True。
2022-09-01 22:10:07
1474
原创 JavaScript trim 兼容
String.prototype.trim=function(){ return this.replace(/(^\s+)|(\s+$)/g,'');}低版本浏览器没trim方法。用正则兼容。 // ^ 表示以...开头// | 或者// $ 表示以...结尾// /s 表示空白字符// * 表示一个或多个// \^/s*\ 表示。以 空白字符开头的一...
2019-01-24 19:18:48
489
原创 安卓微信浏览器无法触发onchange事件
部分安卓微信浏览器无法触发onchange事件这其实安卓微信的一个遗留问题。解决办法也很简单:input标签 <input type=“file" name="image" accept="image/gif, image/jpeg, image/png”>要写成<input type="file" name="image" accept=“image/*”...
2018-12-27 16:01:50
2532
3
原创 JavaScript 报错信息 try catch
// try {},// catch (e) {},// finally {}// 一般是用来检测可能出错的问题的, 可以把可能出错的代码放在try里面,// 然后如果出错会产生反应的代码放在catch里面, // finally就是当catch走完之后再走一下finally代码块, finally用处不是很大// catch的参数e一定要写上, 系统会自动传进去错误信息, 错误信息...
2018-12-20 14:51:32
325
原创 练习题
// 1.(function (x) { delete x; return x;})(1); // 输出 1;// 2.function test() { console.log(typeof arguments);}test(); // 'object' // 类数组 也是对象 数组也是对象// 3.var h = function a() ...
2018-12-20 14:48:50
260
原创 JavaScript delete操作符
语法delete expression expression 的计算结果应该是某个属性的引用,例如:delete object.property delete object['property']参数object对象的名称,或计算结果为对象的表达式。property要删除的属性。delete 操作符会从某个对象上移除指定属性。成功删除的时候回返回 tr...
2018-12-20 11:09:06
190
原创 JavaScript 数组去重
// 数组去重Array.prototype.unique = function () { var newArr = [], temp = {}, len = this.length; for (var i = 0; i < len; i++) { if (!temp[this[i]]) { temp[this[i]] = true...
2018-12-20 00:38:25
102
原创 JavaScript 类数组学习 练习
可以利用属性名模拟数组的特性 可以动态增长length属性 如果强行让类数组调用push方法,则会根据length属性值的位置进行属性的扩充var obj = { '0': 'a', '1': 'b', '2': 'c', 'length': 3, 'push': Array.prototype.push}obj.push('d'); con...
2018-12-20 00:36:49
131
原创 JavaScript 数组学习 常用方法 排序
数组的定义 new Array(length / content); 字面量 var arr = [ ];var arr = [1, , 1]; // [l, undefined, 1]arr.length; // 3var arr = new Array(1,2,3,4,5); // [1, 2, 3, 4, 5]// 创建一个长度为...
2018-12-19 19:13:27
142
原创 JavaScript 深浅拷贝
浅克隆只能拷贝原始值,如果存在引用值,拷贝的是引用地址。origin 更改值后 target还是会被改变function clone(origin, target) { var target = target || {}; for (var prop in origin) { target[prop] = origin[prop]; } r...
2018-12-19 17:09:54
127
1
原创 JavaScript 判断数组 || 对象
var arr = [];var obj = {};// 1) constructorarr.constructor; // function Object() {}obj.constructor; // function Array() {}// 2) instanceofarr.instanceof Array; // trueobj.instanceof Array; // ...
2018-12-19 16:16:32
157
原创 JavaScript arguments 学习 及 练习题
arguments.callee 解决立即执行函数 没有函数名问题 闭包计算// 计算阶乘var num = (function(n){ if(n ==1) { return 1; } return n * arguments.callee(n - 1);}(10))fun.caller 被调用的环境fun...
2018-12-19 16:08:47
270
原创 JavaScript this指向 学习
函数预编译过程 this --> window 全局作用域里 this --> window call / apply 可以改变函数运行时 this 指向 obj.func(); func()里的this指向obj 谁调用 this就指向谁练习var name = '222';var a = { name: '111', say: function (...
2018-12-19 15:22:44
286
原创 JavaScript 对象枚举
链式调用function deng = { smoke: function() { console.log('smoking'); // 如果不加return 默认 return undefined return this; }, drink: function() { console.log('drink...
2018-12-19 11:27:30
300
原创 JavaScript 继承 圣杯模式
发展史 1.传统形式 --> 原型链 过多的继承了没用的属性 2.借用构造函数 不能继承借用构造函数的原型 每次构造函数都要走一个函数 3.共享原型 不能随便改动自己的原型 ...
2018-12-19 10:23:42
351
原创 JavaScript call / apply 学习
谁调用 this就指向谁Person.prototype = { name: 'a', sayName: function () { console.log(this.name); }}function Person() { this.name = 'b';}var person = new Person();console.lo...
2018-12-18 23:35:53
118
原创 JavaScript 原型学习 拓展toString 精度计算
定义 原型是function对象的一个属性,它定义了构造函数制造出来的对象的公共祖先。通过该构造函数产生的对象,可以继承该原型的属性和方法。原型也是对象。利用原型特点和概念,可以提取共有属性。 对象如何查看原型 --> 隐式属性 __proto__ 对象如何查看对象的构造函数 --> constructor//Person.prototype -->...
2018-12-18 18:52:53
190
原创 JavaScript 练习题2
练习1var x = 1, y = z = 0;function add(n) { return n = n + 1;}y = add(x);function add(n) { return n = n + 3;}z = add(x);console.log(x, y, z); // 1, 4, 4 预编译 函数提前 同名函数 内容被覆盖练习2/...
2018-12-18 18:09:23
274
原创 JavaScript对象学习 构造函数 包装类 练习题
// 对象的增删改查// 定义一个对象var obj = { name: 'zhangsan', age: 18};// 增obj.sex = 'male';// 改obj.age = 20;// 查console.log(obj.name);// 删delete obj.age;对象创建方法// 1. 对象字面量/对象直接量var...
2018-12-18 17:40:27
454
1
原创 JavaScript练习题
var f = ( function f() { return '1'; }, function g() { return 2; })()typeof f; // 返回 2 Number // 因为逗号操作符会先求前面的结果,再求后面的结果 并且返回后面的结果逗号运算符 必须以 小括号 括起来var a = (1,2...
2018-12-17 21:07:27
174
原创 JavaScript 闭包精细
// 输出 0 - 9function test() { var arr = []; for (var i = 0; i < 10; i++) { arr[i] = function() { console.log(i); } } return arr;}var myArr = test();...
2018-12-17 17:59:05
130
原创 JavaScript 闭包
function a() { var num = 100; function b() { num ++; console.log(num); } return b;}var demo = a();demo(); // 101 aAO{ num: 101} 保存到了demo 执行完b被销毁demo(); // 1...
2018-12-17 16:31:52
103
原创 javascript 作用域链
[[scope]]:每个JavaScript函数都是一个对象,对象中有些属性我们可以访问,但,有些不可以,这些属性仅供JavaScript[[scope]]就是其中一个。 [[scope]]指的就是我们所说的作用域,其中存储了运行期上下文的集合。作用域链:[[scope]]中所存储的执行器上下文对象的集合,这个集合呈链式链接,我们把这种链式链接叫做作用域链。运行期上下文:...
2018-12-17 13:54:05
123
原创 JavaScript预编译
js执行过程三步:语法分析 通篇扫描是否存在语法错误。比如少个括号之类预编译 函数声明 整体提升test();function test() { console.log(1);} 变量 声明提升console.log(a); //输出 undefinedvar a = 123;预编译前奏imply global...
2018-12-17 01:13:19
94
原创 JavaScript递归 计算n的阶乘 菲波那切数列
// n的阶乘function mul(n) { // 出口 if(n == 1 || n == 0){ return 1; } //规律 return n * mul(n - 1);}// 递归的效率最慢 少用。// 递归的好处 代码简洁// 菲波那切数列function feibo(n) { if (n == 1 ...
2018-12-17 00:33:13
609
原创 JavaScript函数学习
//1.命名函数表达式 var test = function abc() { console.log(1);}test(); // 执行 test函数abc(); // abc is not defined; 表达式的函数名不能直接使用//2.匿名函数表达式 // 常用的方式,函数表达式一般都是指匿名函数表达式var demo = function() { ...
2018-12-16 22:34:42
130
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人