Python学习 问题 day01(None、_ _ call _ _ 方法、相对路径、作用域、断点调试、常用快捷键)

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:
    # 定义__call__方法
    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")

# 调用__call__()方法,把对象当成函数来使用 我是参数a 你是参数b
# ----------------------------------------------------------------------------------------------------
# 调用hello我是参数e你是参数f

相对路径

  • 代码行里的相对路径是针对该代码文件的,即从该代码文件开始,如下:
    在这里插入图片描述
  • 而pycharm右键复制的相对路径是针对当前项目的,仅仅除去最开始的项目文件夹,如下:
    在这里插入图片描述

作用域

  • Python中有三种主要的作用域:
    • 局部作用域: 局部作用域是在函数内部定义的作用域。在这个作用域中定义的变量只能在这个函数内部访问。一旦函数执行结束,这些变量就会被销毁。这包括函数的参数、以及在函数内部通过赋值语句定义的变量。
    • 嵌套作用域: 嵌套作用域是指在一个函数内部定义的另一个函数的作用域。在内部函数中,可以访问外部函数的变量,但不能修改它们(除非使用nonlocal关键字),外部函数也不能访问内部函数的变量。
    • 全局作用域: 全局作用域是在模块文件顶层定义的作用域,以及在交互式环境中执行的代码的作用域。在全局作用域中定义的变量可以在整个模块中访问,包括模块中的函数。但是,在函数内部,如果要对全局作用域中的变量进行赋值,必须使用global关键字。
# 局部作用域
def my_function():
    x = 10  # 在函数内部定义的变量 x 属于局部作用域
    print(x)

my_function()
# 嵌套作用域
def outer_function():
    x = 10

    def inner_function():
        print(x)  # 内部函数可以访问外部函数的变量 x

    inner_function()

outer_function()
# 全局作用域
x = 10  # 在模块文件顶层定义的变量 x 属于全局作用域

def my_function():
    print(x)  # 函数内部可以访问全局作用域中的变量 x

my_function()
  • 当局部变量和全局变量重名时,在函数内部,局部变量会覆盖全局变量,即函数内部的同名变量会隐藏(遮盖)全局作用域中的同名变量。这意味着,在函数内部,如果引用了这个变量名,Python会优先使用局部作用域中的变量。
x = 10  # 全局变量

def my_function():
    x = 20  # 局部变量,和全局变量 x 同名
    print("Inside function:", x)

my_function()
print("Outside function:", x)  # 在函数外部输出全局变量 x

# 输出结果
# Inside function: 20
# Outside function: 10
  • 在函数内部,当我们引用变量x时,Python会使用函数内部的局部变量x,而不是全局变量x。因此,在函数内部输出的是局部变量x的值,而在函数外部输出的是全局变量x的值。如果在函数内部需要访问全局变量,可以使用global关键字声明,以明确告诉Python使用全局变量,而不是创建一个新的局部变量。
x = 10  # 全局变量

def my_function():
    global x  # 声明使用全局变量 x
    x = 20  # 修改全局变量 x
    print("Inside function:", x)

my_function()
print("Outside function:", x)  # 在函数外部输出修改后的全局变量 x

# 输出结果
# Inside function: 20
# Outside function: 20

断点调试

  • 有时print()语句前打断点无效,程序仍会继续执行,我们可以在前一行加入a=1,并把断点打在a=1这行上,如下:
    在这里插入图片描述

常用快捷键

  • ctrl + p 查看当前函数需要什么参数
  • alt + enter 查看报错解决方法
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丿罗小黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值