首页 文章 精选 留言 我的

精选列表

搜索[AI原生],共10000篇文章
优秀的个人博客,低调大师

Python3好用的原生api

读取特定目录下所有的文件夹, 和文件名os.walk() os.walk("./")是我最喜欢的api之一, 作用是获取某个路径下,所有的文件夹和文件的路径, 如果你是一个喜欢写脚本的人, 那这个api或许能帮你更优雅的实现你的程序~ import os for relative_file_dir_path, file_dir_name, file_name in os.walk('./'): print("当前文件夹路径(字符串)", relative_file_dir_path) print("当前文件夹目录下包含的文件夹(数组)", file_dir_name) print("当前文件夹目录下包含的文件名(数组)", file_name) print("---"*10) 这个操作非常适合编写文件处理脚本, 比如你想将某个目录下的markdown文件批量转换为word文档, 参考Python将md批量转为docx, 或者将less批量转换为css, 参考批量转换less至css, 配合其他优秀的库, 你可以完成一些好玩的操作, 比如 网站图片素材中文转英文 深拷贝 相比js蛋疼的深拷贝操作, python的深拷贝简单粗暴 copy_name = deepcopy(name) from copy import deepcopy name = ["z", "h", "a", "o", "o", "l", "e", "e"] copy_name = deepcopy(name) copy_name[0] = "Z" print("原列表", name); print("新列表", copy_name) 一个优秀的api就应该简洁强大, 见名知意, 反向对比js的深拷贝, js的深拷贝简直就是一门学问, 而且几乎是面试必问, 当然深入研究一下也并非不好, 但如果开发者精力有限, 优秀的api可以极大提升我们的工作效率 随机取字符串(点名利器) 如果你想写一个点名的小程序, python一行代码就能搞定~ import random for i in range(10): group = random.choice(["白月初", "东方月初", "苏苏", "红红", "王富贵", "清瞳"]) print("第", i,"周", group, "打扫教室...") 反向切片 python的切片操作可谓是优雅强大, 通过反向切片, 你可以迅速获得一个列表的反向序列 对列表进行反序是一个很常见的操作, 但python反向切片的玩法实在是非常简洁, 让人无法拒绝, 其实对某一数据结构进行"反向"是一个很有意思的操作, 比如对二叉树进行反序 明星程序员被Google挂掉的故事, 还有google著名的 在不使用额外空间的前提下, 对句子内的单词进行反序的问题, 比如将 This is a pen 反向为 pen a is This 小结 Python为我们提供了大量好用的api, 可以让我们的需求快速得到实现, 极大提升我们的开发效率, 但很多问题, 并不是用几个简单api就能搞定的, 比如前面提到的google的在不使用额外空间的情况下, 将This is a pen 反向为 pen a is This, 这个题目的解法非常巧妙, 首先将This is a pen 转换为nep a si sihT, 然后根据空格所处的位置, 将单个的单词自身的序列进行调换, 这样就可以将, nep a si sihT转换为pen a is This 优秀的算法能让我们以更少的资源的实现程序, 优秀的api能提升我们的开发效率, 或许优秀的工程师, 就是在二者之间把握平衡的那类人吧~

优秀的个人博客,低调大师

如何用原生JS写Tab切换

1. 基本思路 ① 遍历Tab选项 ② 然后给每个Tab选项绑定点击事件 ③ 每次点击时清除所有Tab选项及Tab选项内容的样式,然后给当前Tab选项添加标记样式,给当前Tab选项添加显示样式 2. 具体代码实现 <!--HTML--> <div id="tab"> <!--Tab选项--> <div class="tab-nav"> <a href="javascript:;" class="cur">选项1</a> <a href="javascript:;">选项2</a> <a href="javascript:;">选项3</a> </div> <!--Tab选项内容--> <div class="tab-content"> <div class="content content1 cur">选项内容1</div> <div class="content content2">选项内容2</div> <div class="content content3">选项内容3</div> </div> </div> /*CSS*/ #tab{ width: 300px; margin: 30px auto;} .tab-nav{ display: flex;} .tab-nav a{ flex: 1; line-height: 40px; border: 1px solid #000; text-align: center; text-decoration: none; color: #000;} .tab-nav a.cur{ color: #fff; background: #000;} .content{ display: none; width: 100%; height: 300px; color: #fff; box-sizing: border-box; padding: 10px;} .content.cur{ display: block;} .content1{ background: #f00; } .content2{ background: #0f0;} .content3{ background: #00f;} //Javascript window.onload = function () { var oTab = document.getElementById('tab'); var aTabNav = oTab.querySelectorAll('.tab-nav a'); var aTabContent = oTab.querySelectorAll('.tab-content .content'); for(var i = 0; i < aTabNav.length; i++){ // 遍历Tab选项 aTabNav[i].onclick = (function (i) { // Tab选项绑定点击事件 return function () { // 清除所有Tab选项的标记样式 for(var j = 0; j < aTabNav.length; j++){ aTabNav[j].classList.remove('cur'); } aTabNav[i].classList.add('cur'); // 清除所有Tab选项内容的显示样式 for(j = 0; j < aTabContent.length; j++){ aTabContent[j].classList.remove('cur'); } aTabContent[i].classList.add('cur'); } })(i); } }; 以上JS还可以继续优化,将相同功能的代码封装成函数: window.onload = function () { var oTab = document.getElementById('tab'); var aTabNav = oTab.querySelectorAll('.tab-nav a'); var aTabContent = oTab.querySelectorAll('.tab-content .content'); for(var i = 0; i < aTabNav.length; i++){ aTabNav[i].onclick = (function (i) { return function () { addCurClass(aTabNav,i); addCurClass(aTabContent,i); } })(i); } }; function addCurClass(obj,index) { for(var i = 0; i < obj.length; i++){ obj[i].classList.remove('cur'); } obj[index].classList.add('cur'); } 代码没有什么难度,非常基础,但是需要注意的一点是,在获取当前点击项的索引时,我们需要使用到闭包。 相关推荐 教你两招用纯CSS写Tab切换纯CSS制作单页Web应用使用hash制作单页Web应用

优秀的个人博客,低调大师

云原生架构之配置中心-总述

传统的静态配置方式要想修改某个配置只能修改之后重新发布应用,要实现动态性,可以选择使用数据库,通过定时轮询访问数据库来感知配置的变化。轮询频率低感知配置变化的延时就长,轮询频率高,感知配置变化的延时就短,但比较损耗性能,需要在实时性和性能之间做折中。配置中心专门针对这个业务场景,兼顾实时性和一致性来管理动态配置。

优秀的个人博客,低调大师

NativeScript 9.0.18 发布,跨平台原生应用框架

NativeScript 9.0.18 现已发布。NativeScript 使用户能够直接从 JavaScript 访问native API。目前,该框架为丰富的移动开发提供了 iOS 和 Android 运行时,并可用于多种不同的用例。 Fixes iOS:液态玻璃 Flexbox(#11134) iOS:防止 createUIImageFromURI 中使用非字符串类型的 imageURI (#11144) iOS:场景通知首次启动(#11149) android:setTextColor 方法为非空类型,防止空指针异常(#11147) TextField:允许在 secureWithoutAutofill 存在时切换安全状态 (65503ba3f) core:拆分 http 模块以解决循环引用问题(#11141) android:仅对全屏模态框启用 edge-to-edge(#11140) core:View object 中的尺寸导出(#11132) Performance TextField:优化 secureWithoutAutofill(#11131) 更新说明:https://github.com/NativeScript/NativeScript/releases/tag/9.0.18-core

优秀的个人博客,低调大师

NativeScript 9.0.13 发布,跨平台原生应用框架

NativeScript 9.0.13 现已发布。NativeScript 使用户能够直接从 JavaScript 访问native API。目前,该框架为丰富的移动开发提供了 iOS 和 Android 运行时,并可用于多种不同的用例。 Features core:将 overridden value converters 绑定到 target(#11018) Fixes segmented-bar:通过 CSS 设置 selectedTextColor(#11060) android:改进 edge to edge 处理(#11058) android:a11y 回调提前触发时的保护(#11061) 更新说明:https://github.com/NativeScript/NativeScript/releases/tag/9.0.13-core

优秀的个人博客,低调大师

NativeScript 9.0.12 发布,跨平台原生应用框架

NativeScript 9.0.12 现已发布。NativeScript 使用户能够直接从 JavaScript 访问native API。目前,该框架为丰富的移动开发提供了 iOS 和 Android 运行时,并可用于多种不同的用例。 Features slider:为轨道背景添加线性渐变支持(#11015) Fixes 当非 CommonJS 时,polyfills 会立即处理(#11057) segmented-bar:iOS 初始渲染时的背景颜色边框半径(#11054) iOS:将 hidden 属性应用于 shadow layer(#11051) 更新说明:https://github.com/NativeScript/NativeScript/releases/tag/9.0.12-core

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册