-
Python中的函数分析:参数有冒号,声明后有- 箭头
所属栏目:[语言] 日期:2021-06-01 热度:181
我在查看python的fixture源码时发现 fixture的方法定义形式如下: deffixture( fixture_function:Optional[_FixtureFunction]=None, *, scope:Union[_Scope,Callable[[str,Config],_Scope]]=function, params:Optional[Iterable[object]]=None, autouse:bo[详细]
-
通过编写一个有趣的游戏学习 C 语言
所属栏目:[语言] 日期:2021-06-01 热度:52
从写一个函数来选择一个随机数字来开始猜数字游戏。在编写函数时,优秀的程序员会尽量使它们具有灵活性,这样他们就可以重用它们来解决略有不同的问题。因此,与其硬编码函数来选择 1 到 100 之间的一个随机数,不如编写函数来选择 1 到某个整数 maxval 之[详细]
-
小白篇:Java原子组件和同步组件
所属栏目:[语言] 日期:2021-06-01 热度:175
在使用多线程并发编程的时,经常会遇到对共享变量修改操作。此时我们可以选择ConcurrentHashMap,ConcurrentLinkedQueue来进行安全地存储数据。但如果单单是涉及状态的修改,线程执行顺序问题,使用Atomic开头的原子组件或者ReentrantLock、CyclicBarrier[详细]
-
PHP没戏了?想看PHP被舍弃还早着呢!
所属栏目:[语言] 日期:2021-06-01 热度:132
我写PHP将近20年了(可能更久,我不太记得我什么时候开始的了)。在用其他语言的时候,大多数情况下,我都会直接忽略对话的大部分内容。这么多年来,PHP都在渐渐失去生命力,我早就应该不用它了。在任何语言上我都称不上是专家,关于PHP我还有很多要学的,但[详细]
-
创意花卉摄影技巧实例教程
所属栏目:[语言] 日期:2021-05-30 热度:129
花卉摄影是传统的,摄影人最喜欢拍摄的题材之一。 但拍多了,看多了,人们的视觉疲劳了,没有了新鲜感,花卉摄影照片也很容易便成了糖水照片。且静态的花卉摄影常常容易陷于枯燥和平淡。 下面的作品却能打破常规,积极挖掘摄影的创意性,那我们就细细阅读[详细]
-
七大雨天摄影的迷人之处图文讲解教程
所属栏目:[语言] 日期:2021-05-30 热度:159
副标题#e# 想想为什么喜欢拍照的人,一遇到雨天就哀声叹气的说不能拍照?原因莫过于相机容易受潮损坏、不喜欢淋雨、没有光影、不好找人一起拍照......当然这些都是不出门的好理由,但不轻易放弃拍摄热情的我们,也找到七大雨天拍摄的理由,邀请你一起享受雨[详细]
-
巧用自然光 拍出最美花儿技巧教程
所属栏目:[语言] 日期:2021-05-30 热度:137
副标题#e# 和人一样,花是有生命的,他们在静静的呼吸,不知不觉中生长,每朵花都有独一无二的姿态,正如这世界上的人们,这个城市每天有那么多人来来回回,却没有人和另一个人是一样的;在拍摄花朵时,通常是在自然光源的环境下,但在不同的时段,光线会随[详细]
-
新手入门:人像摄影应避免的5种状况
所属栏目:[语言] 日期:2021-05-30 热度:101
人像一直是摄影题材中较热门的主题,同时也十分具有挑战性,需要长时间练习来提高拍摄技术,才得以掌握人像摄影的精髓,拍出有灵气的作品。在此小小总结人像摄影初学者在创作时可能出现的5个问题,若能一一克服,不仅能拍出更出色的作品,也能让摄影功力大[详细]
-
摄影新手入门之6种减少相机抖动的手持姿势
所属栏目:[语言] 日期:2021-05-30 热度:182
摄影入门,摄影技巧,相机抖动 对于摄影新手而言,开始摄影的时候就像小孩学走路一样,一路上总是通过跌跌撞撞地摸索该如何拍照。只是在学会怎样拍照前,最需要练习地反倒是手持相机的姿势。因为错误的姿势,很容易让拍摄者在不稳定的情况下按快门,拍出模糊[详细]
-
摄影技巧之7个拍摄夜景的入门技巧
所属栏目:[语言] 日期:2021-05-30 热度:160
相信很多摄影新手都喜欢拍摄夜景。但是开始的时候,往往发觉效果不够理想。其实只要掌握到当中的小技巧,你也能够轻易地拍出高水平的夜景照! 技巧一:自备脚架 拍摄夜景时通常需要较长时间曝光,因此相机要保持隐定才可以拍出清晰的照片。为免因震动而破[详细]
-
人像摄影中自然光与人造光摄影教程
所属栏目:[语言] 日期:2021-05-30 热度:118
如果被摄对象皮肤颜色较浅,自然光是最好的选择。浅色皮肤反光更为强烈,会让你希望不做的面部细节损失殆[详细]
-
Go语言内嵌结构体成员名字歧义的解决办法
所属栏目:[语言] 日期:2021-05-29 热度:163
嵌入结构体内部可能拥有相同的成员名,成员重名时会发生什么?下面通过例子来讲解。 package main import ( fmt ) type A struct { a int } type B struct { a int } type C struct { A B } func main() { c := C{} c.A.a = 1 fmt.Println(c) } 代码说明如[详细]
-
清除编译文件需要用到的语言
所属栏目:[语言] 日期:2021-05-29 热度:86
Go语言中go clean命令可以移除当前源码包和关联源码包里面编译生成的文件,这些文件包括以下几种: 执行go build命令时在当前目录下生成的与包名或者 Go 源码文件同名的可执行文件。在 Windows 下,则是与包名或者 Go 源码文件同名且带有.exe后缀的文件。[详细]
-
利用反射获取指针指向的元素类型的处理方式极为安全
所属栏目:[语言] 日期:2021-05-29 热度:83
Go语言程序中对指针获取反射对象时,可以通过 reflect.Elem() 方法获取这个指针指向的元素类型。这个获取过程被称为取元素,等效于对指针类型变量做了一个*操作,代码如下: package main import ( fmt reflect ) func main() { // 声明一个空结构体 type c[详细]
-
两个经典例子让你彻底明白Java回调机制
所属栏目:[语言] 日期:2021-05-29 热度:155
先让我们通过一个生活中的场景来还原一下回调的场景:你遇到了一个技术难题(比如,1+1等于几?太难了!),于是你去咨询大牛,大牛说现在正在忙,待会儿告诉你结果。 此时,你可能会去刷朋友圈了,等大牛忙完之后,告诉你答案是2。 那么,这个过程中询问问题([详细]
-
这两种常用的编程语言之间的主要区别是什么?
所属栏目:[语言] 日期:2021-05-29 热度:56
Python VS JavaScript:实际应用 我们将从快速浏览它们的实际应用程序开始。 Python 由于其强大的功能和多功能性,Python已经成为世界上几乎每一个科学应用程序中必不可少的工具,它是一种支持不同编程范式的通用编程语言。 它广泛用于科学和专业应用,包[详细]
-
快亦有道!让 Python 变快的 5个办法
所属栏目:[语言] 日期:2021-05-29 热度:74
在CPython的替代品中,PyPy是最显眼的那一个(比如Quora就在生产环境中使用它)。它也最有机会成为默认解释器,它和现存Python代码高度兼容。 PyPy使用适时编译来加速Python,这项技术Google也在使用,Google在V8引擎中使用它加速Javascript。最近的版本PyPy[详细]
-
LEGB规则是编程语言里必不可少的
所属栏目:[语言] 日期:2021-05-29 热度:160
四个作用域遵循LEGB规则,让我们用一个例子来说明。 importbuiltins builtins.b=builtins g=global defouter(o1,o2=o2): e=enclose definner(i1,i2=i2): print(i1,i2,o1,o2,e,g,b) returninner fun=outer(o1) fun(i1) 其输出为 i1 i2 o1 o2 enclose global[详细]
-
Python变量定义的时间和空间及其作用域的重要性
所属栏目:[语言] 日期:2021-05-29 热度:61
为啥变量要有作用域呢? 我们在Python里遇到的内置、局部、全局及自由变量,就是说变量的作用域。 语言区分作用域,是为了复用变量名。引入作用域,相当于给变量划分了各自的隔离区,在不同隔离区里,查找变量变得很容易。 正是因为有了作用域,我们在函数[详细]
-
信息量大且结构便利的日志调试和跟踪应用程序实践的理想方式
所属栏目:[语言] 日期:2021-05-29 热度:198
关于Python日志记录库,大部分开发人员都善于解释如何设置一个记录系统用于一个Python脚本。但是,几乎找不到如何设置Python日志记录库以在整个应用程序范围内使用,以及如何在所有项目模块中舒适地正确集成和共享日志记录信息的解释器。 在本文中,我将分[详细]
-
java程序调用c++代码是你需要掌握的
所属栏目:[语言] 日期:2021-05-29 热度:197
首先定义一个包含了native方法的类如下,之后我们要使用这个类中的native方法通过jni调用c++编写成的动态链接库中的方法: publicclassJniTest{ static{ System.loadLibrary(MyNativeDll); } publicstaticnativevoidcallCppMethod(); publicstaticvoidmain[详细]
-
并发问题原因分析及解决
所属栏目:[语言] 日期:2021-05-29 热度:156
Unsafe.compareAndSwapXXX 实现CAS更改 state 和 队列指针 内部依赖CPU提供的原子指令 可见性与有序性 volatile 修饰 state 与 队列指针 (prev/next/head/tail) 线程阻塞与唤醒 Unsafe.park Unsafe.parkNanos Unsafe.unpark Unsafe类是在sun.misc包下,[详细]
-
锁的使用至关重要
所属栏目:[语言] 日期:2021-05-29 热度:177
副标题#e# 独占锁的实现,拥有上面列举的除读写锁之外的所有特性,使用比较简单 classX{ //创建独占锁实例 privatefinalReentrantLocklock=newReentrantLock(); //... publicvoidm(){ lock.lock();//blockuntilconditionholds try{ //...methodbody }finall[详细]
-
Lock特点性能完美分析解读
所属栏目:[语言] 日期:2021-05-29 热度:136
像synchronized和ReentrantLock都是可重入锁,可重入性表明了锁的分配机制是基于线程的分配,而不是基于方法调用的分配。 举个简单的例子,当一个线程已经获取到锁,当后续再获取同一个锁,直接获取成功。但获取锁和释放锁必须要成对出现。 可响应中断 当[详细]
-
Semaphore 数据结构分解详解
所属栏目:[语言] 日期:2021-05-29 热度:150
副标题#e# //Go语言中暴露的semaphore实现 //具体的用法是提供sleep和wakeup原语 //以使其能够在其它同步原语中的竞争情况下使用 //因此这里的semaphore和Linux中的futex目标是一致的 //只不过语义上更简单一些 // //也就是说,不要认为这些是信号量 //把这[详细]
