Python笔记


Python Go Go Go

⚓️什么是Python

⚓️语法相关

⚓️概念拾遗

⚓️为什么调用类方法要用类方法装饰器 @classmethod

一句话解答,因为类实例化后,不带类方法装饰器的方法将会默认是类的成员方法,也就是说会默认传入一个实例本身(一般会用self来指代),这就会导致类方法的参数超出了我们的预期。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> class b():        # 想作为工具类的类,这种类一般不需要实例化
... def y(): # 工具类传入的参数往往都是要用到的计算用的参数
... print(1)

>>> b.y() # 直接调用类的方法,类方法正常工作
1

# 实例化后,默认传入一个【实例本身】,导致报错。
>>> b().y()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: y() takes 0 positional arguments but 1 was given

# 此时工具类中的方法如果有参数,那么它的第一个参数就会被传入【实例本身】
# 那么如果加入类方法装饰器,第一个参数就可以传入类本身,而不是实例本身。

⚓️编程风格

参考资料

PEP 8 – Style Guide for Python Code | Python.org

python中的PEP是什么?怎么理解?(转) - 努力奋斗的阿贝拉 - 博客园 (cnblogs.com)

⚓️代码块

⚓️边边角角

## PEP

参考资料

PEP 0 – Index of Python Enhancement Proposals (PEPs) | Python.org



分享到