None的总结
在Python中,对于一些变量往往需要赋初始值,为了防止初始值与正常值混淆,通常采用置0或置空操作,置0比较简单,置空则是赋None None是一个空值,可以赋给任意类型的变量,起到占位的作用 None有自己的数据类型,为NoneType,None是NoneType数据类型里的唯一值 None不等于空字符串、空列表、0、False 对于定义的函数,如果没有return语句,在Python中会返回None,如果有不带值的return语句,那么也是返回None
_ _ call _ _ 方法
_ _ call _ _ 方法跟_ _ init _ _ 方法都是是python的一种内置方法,也叫魔法方法,但是它们两不一样,如下:
1 . _ _ call _ _方法是把对象当成函数来使用的时候,会自动调用,也就是说把类的实例化对象,变成一个可以调用的对象,可以让实例对象可以像函数一样被调用。
2 . 在python官网里面说的是,此方法会在实例作为一个函数被“调用”时被调用。
例如:
class A:
def __call__( self, a, b) :
print( "调用__call__()方法,把对象当成函数来使用" , a, b)
def hello( self, e, f) :
print( "调用hello" + e + f)
c = A( )
c( "我是参数a" , "你是参数b" )
print( "-" * 100 )
c.hello( "我是参数e" , "你是参数f" )
相对路径
代码行里的相对路径是针对该代码文件的,即从该代码文件开始,如下: 而pycharm右键复制的相对路径是针对当前项目的,仅仅除去最开始的项目文件夹,如下:
作用域
Python中有三种主要的作用域:
局部作用域: 局部作用域是在函数内部定义的作用域。在这个作用域中定义的变量只能在这个函数内部访问。一旦函数执行结束,这些变量就会被销毁。这包括函数的参数、以及在函数内部通过赋值语句定义的变量。 嵌套作用域: 嵌套作用域是指在一个函数内部定义的另一个函数的作用域。在内部函数中,可以访问外部函数的变量,但不能修改它们(除非使用nonlocal关键字),外部函数也不能访问内部函数的变量。 全局作用域: 全局作用域是在模块文件顶层定义的作用域,以及在交互式环境中执行的代码的作用域。在全局作用域中定义的变量可以在整个模块中访问,包括模块中的函数。但是,在函数内部,如果要对全局作用域中的变量进行赋值,必须使用global关键字。
def my_function( ) :
x = 10
print( x)
my_function( )
def outer_function( ) :
x = 10
def inner_function( ) :
print( x)
inner_function( )
outer_function( )
x = 10
def my_function( ) :
print( x)
my_function( )
当局部变量和全局变量重名时,在函数内部,局部变量会覆盖全局变量,即函数内部的同名变量会隐藏(遮盖)全局作用域中的同名变量。这意味着,在函数内部,如果引用了这个变量名,Python会优先使用局部作用域中的变量。
x = 10
def my_function( ) :
x = 20
print( "Inside function:" , x)
my_function( )
print( "Outside function:" , x)
在函数内部,当我们引用变量x时,Python会使用函数内部的局部变量x,而不是全局变量x。因此,在函数内部输出的是局部变量x的值,而在函数外部输出的是全局变量x的值。如果在函数内部需要访问全局变量,可以使用global关键字声明,以明确告诉Python使用全局变量,而不是创建一个新的局部变量。
x = 10
def my_function( ) :
global x
x = 20
print( "Inside function:" , x)
my_function( )
print( "Outside function:" , x)
断点调试
有时print()语句前打断点无效,程序仍会继续执行,我们可以在前一行加入a=1,并把断点打在a=1这行上,如下:
常用快捷键
ctrl + p 查看当前函数需要什么参数 alt + enter 查看报错解决方法