python小白必背100源代码_送给小白的 7 个 python 小坑

本文详细介绍了Python编程中新手常遇到的7个问题:1)缩进和语法错误;2)类变量的理解误区;3)Python范围规则的误解;4)闭包变量绑定的混淆;5)模块命名冲突;6)is、==和=的使用混淆;7)滥用__init__方法。通过这些例子和解释,帮助Python初学者更好地理解和避免这些常见错误。
摘要由CSDN通过智能技术生成

1. 缩进,符号和空格不正确

写代码时大家会使用缩进、对齐、空格等,其目的是为了提高代码的可读性。

但在python语言中,许多功能都依赖于缩进。

比如在创建一个新类时,该类中的所有内容都在声明下缩进,决策、循环还有其它结构语句也会出现类似的情况,

如果你在代码执行时发现问题,可以查看一下是否使用了正确的缩进。

来看看下面的例子,在使用IF语句时,请确保使用正确且合适的冒号和缩进,因为它们会导致语法和缩进错误。

val = 500

if val > 100

print("value is grater then 100")

File "", line 2

if val > 100

^

SyntaxError: invalid syntax

在上面的代码当中,出现了两处错误:if语句后面的:缺失;下一行没有进行正确的缩进,执行代码出错。

val = 500

if val > 100:

print("value is grater then 100")

value is grater then 100

当你更正上述代码中的两个问题后,你会发现整段代码能够很好的运行。

2. 错误使用类变量

class A(object):x = 1

class B(A):pass

class C(A):pass

print( A.x, B.x, C.x)

1 1 1

这里输出的值都是1,然后我们试着来改变一下A.x和B.x的值看看有什么变化。

B.x = 2

print (A.x, B.x, C.x)

A.x = 3

print (A.x, B.x, C.x)

1 2 1

3 2 3

我们只改变了A.x,为什么C.x改变呢?

这里需要简单了解一下python的命名空间。

python中,命名空间是名字到对象映射的结合,不同命名空间中的名字是没有关联的,这种映射的实现有点类似于python中的字典。

当你名字访问一个对象的属性时,先从对象的命名空间寻找。如果找到了这个属性,就返回这个属性的值;如果没有找到的话,则从类的命名空间中寻找,找到了就返回这个属性的值,找不到则抛出异常。

在Python中,类变量在内部作为字典处理,并遵循通常称为方法解析顺序(MRO)的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值