这只是我的个人理解: 在Python的函数中偶尔会看到函数定义的上一行有@functionName的修饰,当解释器读到@的这样的修饰符之后,会先解析@后的内容,直接就把@下一行的函数或者类作为@后边的函数的参数...,然后将返回值赋值给下一行修饰的函数对象。...比如: @a @b def c(): … python会按照自下而上的顺序把各自的函数结果作为下一个函数(上面的函数)的输入,也就是a(b(c())) def funA(a):...>>> ================================ RESTART ================================ >>> funB funA 则整个程序的执行过程就是
__name__用来显示函数的名称,__doc__用来显示文档字符串也就是("""文档字符串""")这里面的内容 2.首先我们来看不加@wraps的例子 def my_decorator(func):...Test function wrapper decorator 我们来看执行的整个过程:在调用test()函数时,首先会调用装饰器(将test作为参数传入到装饰器中),执wrapper函数,再执行test...但我们可以看到test函数的名字:__name__为wrapper,__doc__为decorator,已经不是原来的test函数了。...Test function test Testword 我们会发现,test函数的__name__和__doc__还是原来的,即函数名称和属性没有变换。
参考: https://www.liujiangblog.com/course/python/83
/usr/bin/python 其他有的可能是 python2 或者 python3 都是一个样子,一开始我以为是像 C++ 那样子一样的头文件,后来把他当做注释了。.../usr/bin/python 作用: 告诉操作系统在执行你的这个脚本时,需要调用的python 解释器是在 usr/bin 下的,这样她(操作系统)就能找到了。 #!.../usr/bin/env python 作用: 如果你很调皮的把 python 没有装到其他地方,再向上面那样子,操作系统就找不到了,那不就不能执行了。...所以,这个时候你要告诉她(操作系统)你把 python 安装到哪里去了,可你总不能写一大串的路径又或者每次换个地方就要重新写一遍吧,这个时候就可以告诉她(操作系统)这里东西就放在环境设置里面,你自己根据环境设置去找就可以啦...所以,你就可以任意的安装在不同地方了。
参考资料:https://www.cnblogs.com/hardy-test/p/6037982.html 一个星(*):表示接收的参数作为元组来处理 两个星():表示接收的参数作为字典来处理 举个栗子
参考链接: Python property() 1、为什么要使用property这个单词 我们首先来分析一下为什么但是龟哥会用property这个单词,而不用foo,bar这样的单词呢,想必一定有他的想法...property ——> 属性 虽然我们不能猜测出(当然我不提倡乱猜)它的具体意思,但是我们可能应该想到,被他修饰的应该和属性的意思有些许联系的。 ...2、具体分析 我们知道人的身高和臂长大致呈1:1的关系,现在我们想通过一个人的身高求得一个人臂长,可以像下面的方法或得 方法一 class Person(object): def __init...其实,还有一个原因就是,方法一中通过方法的形式获取属性,我们就会想,是方法就想这个方法需不需要参数的问题。...显然通过property很好的解决了这个问题,既然我们可以阅读代码时,一眼就能想到这是一个属性值(或者我们想要的值而已),还很好的避免的传参的问题。
变量作用域 Python能够改变变量作用域的代码段是 、 class 、 lamda....def if/elif/else、try/except/finally、for/while 并不能涉及变量作用域的更改,也就是说他们的代码块中的变量,在外部也是可以访问的 变量搜索路径是:局部变量->全局变量...局部变量vs全局变量 局部变量:在函数内部,类内部,lamda.的变量,它的作用域仅在函数、类、lamda里面 全局变量:在当前py文件都生效的变量 global的作用 让局部变量变成全局变量 def...(Python);Python内建函数的名字空间 这是我们代码找变量的顺序,倘若最后一个python内建函数也没有找到的话就会报错了 什么是内建函数呢?...,所以只要记得Python内建函数作用域 > 全局变量作用域 > 局部变量作用域就好了
一、作用域介绍 概念 变量可以使用的范围,程序的变量并不是哪个位置都可以访问的,访问的权限决定于变量时在哪里定义的 作用域的划分 局部作用域(L) 闭包函数外到函数中(E) 全局作用域(G) 内建作用域...(B) 变量查找的规则 L->E->G->B 注意 Python 中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域,其它的代码块(如 if/elif/else.../、try/except、for/while等)是不会引入新的作用域的,也就是说这这些语句内定义的变量,外部也可以访问 二、体现作用域 num1 = 1 if 1: num2 = 2...直接修改全局变量相当于在局部作用域中新建一个局部变量 print("1-", num) func() print("2-", num) 四、修改嵌套作用域中变量的值 a = 1 def func1...(): a = 2 c = 3 def func2(): nonlocal a a = 100 #想要修改嵌套作用域中的变量,需要将其声明成嵌套作用域中的变量
块级作用域??...python中可以执行成功,,这是因为在Python中是没有块级作用域的,代码块里的变量,外部可以调用,所以可运行成功; 函数局部作用域 def func(): name = "zxt"...print(name) name 'name' is not defined name变量只在func()函数内部中生效,所以在全局中是没法调用的; 作用域误区 name = "lzl" def...f1(): print(name) def f2(): name = "eric" f1() f2() lzl 我们都知道,Python中有作用域链,变量会由内到外找,先去自己作用域去找...,原因是Python是静态作用域(词法作用域),因此在编译阶段,就决定了变量的读取方式。
'@'符号用作函数修饰符是python2.4新增加的功能,修饰符必须出现在函数定义前一行,不允许和函数定义在同一行。也就是说@A def f(): 是非法的。...一个修饰符就是一个函数,它将被修饰的函数做为参数,并返回修饰后的同名函数或其它可调用的东西。...\master下的webapp.py。...自补2 我们知道,Python中并没有提供直接的接口支持,但是接口技术又是现代软件设计中的重要技术,借助于它可以极大地减小软件模块间的耦合度。...于是,借助于zope.interface,python中也可以引入接口技术。
pygame是一个设计用来开发游戏的Python模块,在SDL库的基础上提供了各种接口,从而使用用户能够使用python语言创建各种各样的游戏或多媒体程序,pygame支持多种操作系统,当然,它是一个开源的软件...以下是官方的说明: pygame是 跨平台 Python模块,专为电子游戏设计。 包含图像、声音。建立在SDL基础上,允许实时电子游戏研发而无需被低阶语言,如C语言或是更低阶的组合语言束缚。...基于这样一个设想,所有需要的游戏功能和理念都(主要是图像方面)都完全简化位游戏逻辑本身,所有的资源结构都可以由高级语言提供,如Python。 ...SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发函式库,使用C语言写成。...SDL提供了数种控制图像、声音、输出入的函式,让开发者只要用相同或是相似的程序码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。
在python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,不同的类对象标识不同的异常,一个异常标识一种错误 AttributeError #试图访问一个对象没有的树形...#Ctrl+C被按下 NameError #使用一个还未被赋予对象的变量 SyntaxError #Python代码非法,代码不能编译(个人认为这是语法错误,写错了...python特定的语法结构捕获异常 #异常捕获 单个分支 try: 逻辑代码(被捕获得内容) except 异常类型: 检测到异常,就执行这个位置的逻辑 # 多个分支捕获 #..., 结果为raise一个AssertionError出来 用sys模块回溯最后的异常 当发生异常时Python会回溯异常,给出大量的提示,可能会给程序员的定位和纠错带来一定的困难,这是可以使用sys模块回溯最近一次异常...)]] 其中,用 [] 括起来的为可选参数,其作用是指定抛出的异常名称,以及异常信息的相关描述。
最近公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助!...小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。...废话不多说,开始今天的题目: 问:说说Python中pass的作用? 答:Python pass 是一个空的语句块,表示什么也不做,一般作为占位符或者创建占位程序。...pass 作用为了保持程序结构的完整性,否则会报错 。在写一个函数但是不确定里面写啥的时候,这个时候可以使用 pass。...这时加上pass之后,可以让程序的结构完整 ? 重新运行程序,不再报错 ? 总结Python pass的用处都有哪些? ? 如果对于参考答案有补充的,大家可以在评论区指出和补充,欢迎留言!
虽说函数是重点学习对象但是也是属于Python基础教程范畴内的。 学习函数的大致目标: 函数的作用、函数的使用步骤、函数的参数作用、函数的返回值作用、函数的说明文档、函数嵌套。...一、函数的作用 函数含义:函数就是将一段具有独立功能的代码块整合到一个整体并命名,在需要的位置调用这个名称即可完成对应的需求。 函数作用:函数再开发过程中,可以更高效的实现代码重用。...二、函数使用步骤 1、定义函数 def 函数名(参数): 代码1 代码2 ...... 2、调用函数 函数名(参数) 注意: 1.不同的需求,参数可有可无 2.在Python中,...函数必须先定义后使用 三、快速体验函数作用和使用步骤 需求: 复现ATM取钱功能 1、搭建整体框架(复现需求) print('密码正确登录成功') # 显示“选择功能”界面 调用函数 print('查询余额完毕...() print('取了2000元钱') # 显示“选择功能”界面 调用函数 select_func() 文章借鉴来源:http://www.wakey.com.cn/document-column-python.html
# python的__name__ = 'main' 的作用 __name__ = '__main__' 的作用 先写一个模块: #module.py def main(): print "we...are in %s"%__name__ if __name__ == '__main__': main() 我们经常看到想上面代码底下的代码,其主要的意义在于: # 让你写的脚本即可以导入别的模块中用...,并调用一次main()函数会是怎样的结果呢?...name__的值就是我们这个py文件的名字而不是__main__。...这个功能还有一个用处:调试代码的时候,在”if __name__ == '__main__'“ 中加入一些我们的调试代码,我们可以让外部模块调用的时候不执行 我们的调试代码,但是如果我们想排查问题的时候
我们在写函数时,时常需要引用全局的变量,或对全局变量赋值。又或者偶尔遇到局部变量与全局变量同名。在处理这些问题时,python语言的游戏规则是怎样的?今天我们就来学习这方面的内容。 什么是作用域?...在python语言里,在函数内部定义的变量,仅在函数内有效。在函数外面定义的变量对全局有效。我们把这种变量的有效范围叫作变量的作用域。...在python语言里,当引用变量时,会按照由内向外、由近及远的找查变量的定义及赋值。...从上面的代码来看,python会自动按照由里向外、由近及远的规则查找变量。来看下面的几段代码。...for循环没有单独的作用域 for内部定义的变量在循环结束后变量仍然有效。
__str__()函数的作用: 不知道大家再写程序是,打印一个实例化对象时,打印的其实时一个对象的地址。而通过__str__()函数就可以帮助我们打印对象中具体的属性值,或者你想得到的东西。...因为再python中调用print()打印实例化对象时会调用__str__()如果__str__()中有返回值,就会打印其中的返回值。
通常,在块中定义的变量仅在该块中可用。在街区外无法到达。这样的变量称为局部变量。形式参数标识符也表现为局部变量。 下面的例子将强调这一点。...试图打印其作用域之外的局部变量将引发NameError 异常。...此赋值不会改变全局变量的值。...Variables name = 'Steve'def greet(): global name name = 'Bill' print('Hello ', name) Copy 上面将在 Python...>>> name'Steve'>>> greet() Hello Steve >>> name'James' Copy 更多信息,请访问 Python 中的全局和局部。
#python 3.6 #!.../usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'BH8ANK' def a(b): print("1111111111111...我们来看另一段代码: #python 3.6 #!.../usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'BH8ANK' def a(b): print("1111111111111...至此,我们可以看到,@xxxx的作用,就是执行XXXX(并将下面的函数作为参数)
#6.2变量的作用域,是变量的可访问范围,也称为命名空间。在第一次 #给变量赋值时,python创建变量。第一次给变量赋值的位置决定了变量的作用域。...#作用域类型 #一个程序通常包含了变量、函数和其他语句。变量和函数涉及可访问范围。一个程序中的变量和函数 #要么在当前文件中定义,要么就是python预先定义好。函数和程序文件划分了不同的作用域。...#在同一个作用域中。变量名是唯一的。在不同的作用域中,相同的变量名也表示了不同的变量。 #在pyton中作用域范围可以分为内置作用域、文件作用域、函数嵌套作用域和本地作用域。...#根据作用域的范围大小,作用域外部的变量和函数,可以直接作用在作用域内使用;相反,作用域内的变量 #不能在作用域外直接使用。 #根据作用域范围,通常将变量名分为两种:全局变量和本地变量。...内置函数print() #作用域外的变量和作用域内的变量名称相同时,遵循本地“优先”原则,此时外部的作用域被屏蔽 #---作用域隔离原则。
领取专属 10元无门槛券
手把手带您无忧上云