index函数

微信小程序学习笔记(九)音乐播放器(下一曲、上一曲、自动下一曲)

白昼怎懂夜的黑 提交于 2020-04-06 05:22:15
微信小程序学习笔记(九)音乐播放器(下一曲、上一曲、自动下一曲) 要实现自动下一曲、下一曲、上一曲功能,实现列表的循环播放,必须清楚当前播放的是列表中的第几首歌。因此,在程序中设置一个数据记录当前播放的歌曲是列表中的第几首歌曲的数组下标,从而实现以上功能。 一、自动下一曲 在musicdemo.js的data中添加currentIndex数据。 data: { /**当前播放的列表中的歌曲的下标 */ currentIndex:0, 在onLoad函数中,添加如下代码 //自动播放下一曲 this.data.musicCtx.onEnded(()=>{ //下一曲,即让当前的数组下标加1 var index=this.data.currentIndex; index++; if(index>=this.data.musicList.length){ index=0;//当播放完列表中最后一首歌后,从头开始循环列表 } console.log(index) this.setData({ currentIndex:index }) this.data.musicCtx.src=this.data.musicList[index].musicSrc;//开始播放 }) 此时,发现当点击列表的歌曲时,虽然可以自动播放下一曲,但是播放的歌曲却是错误的,原因是点击播放列表中的歌曲时

Underscore.js 1.3.3 源码分析收藏

天涯浪子 提交于 2020-03-31 22:53:12
源码注释转之网上他人之备注,特收藏以后方便阅读。 // Underscore.js 1.3.3 // (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc. // Underscore is freely distributable under the MIT license. // Portions of Underscore are inspired or borrowed from Prototype, // Oliver Steele's Functional, and John Resig's Micro-Templating. // For all details and documentation: // http://documentcloud.github.com/underscore (function() { // 创建一个全局对象, 在浏览器中表示为window对象, 在Node.js中表示global对象 var root = this; // 保存"_"(下划线变量)被覆盖之前的值 // 如果出现命名冲突或考虑到规范, 可通过_.noConflict()方法恢复"_"被Underscore占用之前的值, 并返回Underscore对象以便重新命名 var previousUnderscore = root._;

Flask第十篇 before_request after_request

那年仲夏 提交于 2020-03-30 07:01:19
Flask我们已经学习很多基础知识了,现在有一个问题 我们现在有一个 Flask 程序其中有3个路由和视图函数,如下: from flask import Flask app = Flask(__name__) # type:Flask @app.route("/login") def login(): return "Login" @app.route("/index") def index(): return "Index" @app.route("/home") def home(): return "Login" app.run("0.0.0.0", 5000) View Code 如果登陆了,就可以访问 index 和 home 页面,如果没登录就跳转到 login 登录 要怎么解决呢, session 对, 用 session 除了 Login 函数之外的所有函数里面全校验 session 是否登录了 太麻烦了,现在咱们只有3个函数,如果成百上千个怎么整啊 装饰器,对没错,装饰器是一个很好的方案,但是啊,我现在还是成败上千个函数,我要在每一个函数定义的时候加上@装饰器,还是很麻烦 那么就引出了我们要学习的第一个知识点: 1.@app.before_request 在请求(request)之前做出响应 from flask import Flask from flask

Python学习笔记第二十一周

被刻印的时光 ゝ 提交于 2020-03-25 04:55:03
目录:          1、URL    2、Models     - 操作    3、Templates     - html模板的使用     - 自定义函数    4、cookie和session    5、分页(自定义分页)    6、Form验证 内容:    1、URL          默认值: urls.py url(r'^index/', views.index, {'name': 'root'}), views.py def index(request,name): print(name) return HttpResponse('ok') View Code      命名空间:       namespace是添加在name前面,和name结合一起生成URL的方法 #urls.py中 from django.conf.urls import url,include urlpatterns = [ url(r'^a/',include('app01.urls',namespace='author')), ] #app01的urls.py中 from django.conf.urls import url from app01 import views app_name = 'app01' urlpatterns = [ url(r'^index/'

JavaScript中的迭代器与循环

烂漫一生 提交于 2020-03-24 18:15:35
引言: 本文涉及内容包括: forEach方法 for-in方法 for-of方法 eval()方法 map()方法 今天来总结一下,JS中我们常见的循环方式与迭代器,深入了解他们之间的区别,及适合的使用场景。 最早的数组遍历方式 var a = ["a", "b", "c"]; for(var index = 0;index < a.length;index++){ console.log(a[index]); } for循环 ,我们最熟悉也是最常用的循环迭代方式,后来的许多迭代方法都是基于for循环封装的。 1 forEach 语法: [].forEach( function (value, index, array) { // ... }); forEach遍历数组,而不是遍历对象哦,而且在遍历的过程中不能被终止,必须每一个值遍历一遍后才能停下来. 也就是说:你不能使用break来退出循环, 不能使用return语句来返回到外层 jquery中forEach 注意其与jQuery的$.each类似,只不过参数正好是相反的! $.each([], function (index, value, array) { // ... }); 2 for...in 适合进行普通对象的遍历 for-in循环遍历对象的key,即键值对的键名。 特性如下: 1. 方法遍历到的index

无参装饰器

江枫思渺然 提交于 2020-03-24 08:40:30
一:储备知识 1.*args, **kwargs def index(x,y): print(x,y) def wrapper(*args,**kwargs): index(*args,**kwargs) # # index(y=222,x=111) wrapper(y=222,x=111) 2.名称空间与作用域:名称空间的的"嵌套"关系是在函数定义阶段,即检测语法的时候确定的 3.函数对象: 可以把函数当做参数传入 可以把函数当做返回值返回 def index(): return 123 def foo(func): return func res = foo(index()) print(res) 输出:123 4.函数的嵌套定义: def outter(): def wrapper(): print('Something in wrapper') return wrapper res = outter() print(res) print(res()) 输出: <function outter.<locals>.wrapper at 0x00EB34A8> Something in wrapper None 5.闭包函数 def outter(): x=111 def wrapper(): x return wrapper f=outter() 传参的方式一

【2020Python修炼记19】Python语法入门—函数装饰器

梦想与她 提交于 2020-03-23 18:08:58
【目录】 一、装饰器的介绍 1、什么是装饰器 2、为何要用装饰器 二、装饰器的实现 1、无参装饰器的实现 2、有参装饰器的实现 *储备知识:(请点击下方标题阅读哦~) 1、 名称空间和作用域 2、 函数对象+函数的嵌套+闭包函数 一、装饰器的介绍 1、为何要用装饰器 开放封闭原则—— 软件的设计应该遵循 开放封闭原则,即对扩展是开放的,而对修改是封闭的。 对 扩展开放, 意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。 对 修改封闭 ,意味着对象一旦设计完成,就可以独立完成其工作,而不要对其进行修改。 软件包含的所有功能的源代码以及调用方式,都应该避免修改,否则一旦改错,则极有可能产生连锁反应,最终导致程序崩溃, 而对于上线后的软件,新需求或者变化又层出不穷,我们必须为程序提供扩展的可能性,这就用到了 装饰器 。 2、什么是装饰器 ’装饰’ 代指 为被装饰对象添加新的功能 , ’器’ 代指 器具/工具 , 装饰器 与 被装饰的对象 均可以是 任意可调用对象 。 即 装饰器的作用 就是 在 不修改 被装饰对象源代码和调用方式 的前提下 为被装饰对象添加额外的功能。 装饰器经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等应用场景,装饰器是解决这类问题的绝佳设计, 有了装饰器,就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。 提示

第五章 函数

懵懂的女人 提交于 2020-03-20 00:03:41
5.1 三元运算(三目运算) 三元运算的基本结构: v = 前面的值 if 条件 else 后面 条件为真 v=前面的值,条件为假v=后面的值 if 条件: v = '前面' else: v = '后面' 例题: 让用户输入值,如果值是整数,则转换成整数,否则赋值为none data = input('') value = int(data) True if datea.isdecimal() else none 5.2 函数 截止目前:都是面向过程编程。其特点是可读性差/可重用性差 为了增加代码的重复利用,可读性,所以引入函数 面向过程编程 user_input = input('请输入角色:') if user_input == '管理员': pass #给管理员发邮件,10行代码 if user_input == '业务员': pas s#给业务员发邮件,10行代码 if user_input == '老板': pass #给老板发邮件,10行代码 对于函数编程: 本质:将N行代码拿到别处并给它起个名字,以后通过名字可以找到这段代码并执行 场景: 代码重复执行 代码量特别多超过一屏,可以选择通过函数进行代码分分割 5.2.1函数的基本结构 def 函数名(形参): #函数的定义 def 函数名(): 函数名的命名规则和变量名命名规则一样 函数内容 pass 函数的执行 函数名

JQuery干货篇之处理元素

大兔子大兔子 提交于 2020-03-17 11:54:22
JQuery干货篇之处理元素 注意这里用的还是我前两篇用的例子,详情请看 我的博客 attr attr() 方法设置或返回被选元素的属性值。 语法: $(selector).attr(attribute) 返回被选元素的属性值。 $(selector).attr(attribute,value) 设置被选元素的属性和值 $(selector).attr(attribute,function(index,oldvalue)) 设置被选元素的属性和值。 参数 描述 attribute 规定属性的名称。 function(index,oldvalue) 规定返回属性值的数。该函数可接收并使用选择器的 index 值和当前属性值。 实例: $("img").filter(":first").attr('src'); //得到属性 $("img").each(function (index,elem) { if(index%2==0) $(elem).attr("src",'lily.png'); //设置属性 console.log($(elem).attr("src")); }) $("img").attr('src',function (index,oldValue) { //这里的oldValue表示原来属性的值,index是索引 if(oldValue=="rose.png")

Python学习Day12

让人想犯罪 __ 提交于 2020-03-14 04:11:17
1.函数对象复习 一、函数对象:把函数的内存地址当作一种变量值去使用 1.引用 x = 10 y = x def func1(): print('from func') func1 = 函数的内址 func2 = func1 func2() 2.可以当作参数传给另外的函数 def func1(): print('from func') def bar(xxx): print(xxx) xxx() bar(func1) 3.可以当作一个函数的返回值 def func1(): print('from func') def bar(): return func1 f = bar() f() 4.可以当作容器类型的元素 def func1(): print('from func') l=[func1] print(l) l[0]() def register(): print('注册') def login(): print('登录') def shopping(): print('购物') def pay(): print('支付') func_dic={ '1':register, '2':login, '3':shopping, '4':pay } while True: print(''' 0 退出 1 注册 2 登录 3 购物 4 支付 ''') choice=input('>>