摘要: 一、迭代器 1、可迭代对象 序列观念的通用化:如果对象是实际保存的序列,或者可以在迭代工具环境中一次产生一个结果的对象,就看做是可迭代的。 迭代协议:实现了__next__方法的对象,被认为是可迭代的。 当for循环开始时,会通过它传递给iter内置函数,以便从可迭代对象中获得一个迭代器,返回的对象 阅读全文
posted @ 2020-05-31 14:53 晨尛 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 1、函数设计 耦合性 对于输入是用参数并且对于输出使用return语句; 只有真正必要的情况下使用全局变量; 不要改变可改变类型的参数,除非调用者希望这样; 每个函数都应有一个单一的、统一的目标; 每个函数应相对较小; 避免直接改变在另一个模块文件中的变量。 总之,使函数和其他编程组件中的外部依赖性 阅读全文
posted @ 2020-05-31 14:51 晨尛 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 1、传递参数 参数的传递是通过自动将对象赋值给本地变量名来实现的;作为参数被传递的对象从来不自动拷贝。 不可变参数“通过值”进行传递。实际就像创建了一份拷贝。 可变对象是通过“指针”进行传递。可变对象能够在函数内部进行原处的改变。 在函数内部的参数名的赋值不会影响调用者:在函数运行时,在函数头部的参 阅读全文
posted @ 2020-05-31 14:49 晨尛 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 1、作用域基础 当在程序中使用变量名时,Python创建、改变或查找变量名都是在命名空间(保存变量名的地方)中进行。 在默认情况下,一个函数的所有变量名都是与函数的命名空间相关联的。 在代码中变量名被赋值的位置决定了这个变量名能被访问到的范围。 函数为程序增加一个额外的命名空间层: 默认情况下,一个 阅读全文
posted @ 2020-05-31 14:48 晨尛 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 1、基础 def是可执行的代码;实时执行的。 Python中所有的语句都是实时运行的,没有像独立的编译时间这样的流程。 def创建了一个对象并将其赋值给某一变量名; lambda创建一个对象但将其作为结果返回; return将一个结果对象发送给调用者。 可出现在函数主体中的任何地方; 表示函数调用的 阅读全文
posted @ 2020-05-31 14:11 晨尛 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 1、查看启动时间 (1)查看被测应用的包名和活动名:adb shell "logcat | grep START" 执行后启动被测应用,在屏幕会输出包名和活动名: cmp字段的值就是packagename和activity。 (2)查看启动时间: adb shell am start -W -n p 阅读全文
posted @ 2020-05-28 20:32 晨尛 阅读(1566) 评论(0) 推荐(0) 编辑
摘要: 1、使用 Monkey 2、使用AppCrawler (1)启动Appium (2)运行AppCrawler 阅读全文
posted @ 2020-05-28 20:29 晨尛 阅读(266) 评论(0) 推荐(0) 编辑
摘要: Android Debug Bridge https://developer.android.google.cn/studio/command-line/adb 1、介绍 adb 是 Android Debug Bridge, Android 调试桥的缩写,adb 是一个 C/S 架构的命令行工具, 阅读全文
posted @ 2020-05-27 21:03 晨尛 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 1、应用操作 (1) 安装应用 (2) 卸载应用 (3) 关闭应用 (4) 启动应用 (5) 检查应用是否安装 (6) 将应用置于后台 (7) 应用重置 2、上下文操作 (1)获取上下文 (2)当前所有上下文句柄 (3)切换上下文 3、键盘操作 (1)sendKeys()方法 (2)pressKey 阅读全文
posted @ 2020-05-27 20:44 晨尛 阅读(75) 评论(0) 推荐(0) 编辑
摘要: (1)id定位 通过uiautomatorviewer.bat 工具可以查看对象的id属性。如果目标设备的API Level低于18则UIAutomatorViewer不能获得对应的Resource ID,只有等于大于18的时候才能使用。 打开uiautomatorviewer.bat工具: 使用方 阅读全文
posted @ 2020-05-27 20:19 晨尛 阅读(85) 评论(0) 推荐(0) 编辑