python学习笔记:@classmethod初体验

一、背景
·学习Python类的创建,其中涉及到类方法
·由于学习视频中只是初略带过,但是对象这个概念又是最重要的,感觉不刨根问底等于白给,这种一知半解的状态确实很让人难受,所以决定在网上深入一步了解一下
二、目前了解
用@classmethod修饰的方法,就是类方法,作用跟类中的实例方法类似。

三、笔记
1.描述:
classmethod是用来指定一个类的方法为类方法。classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。

2.网上资料:

1)https://www.runoob.com/python/python-func-classmethod.html,里面的注释对于理解很有帮助,特别是实例化这个概念

```python
class A(object):

    # 属性默认为类属性(可以给直接被类本身调用)
    num = "类属性"

    # 实例化方法(必须实例化类之后才能被调用)
    def func1(self): # self : 表示实例化类后的地址id
        print("func1")
        print(self)

    # 类方法(不需要实例化类就可以被类本身调用)
    @classmethod
    def func2(cls):  # cls : 表示没用被实例化的类本身
        print("func2")
        print(cls)
        print(cls.num)
        cls().func1()

    # 不传递传递默认self参数的方法(该方法也是可以直接被类调用的,但是这样做不标准)
    def func3():
        print("func3")
        print(A.num) # 属性是可以直接用类本身调用的
    # A.func1() 这样调用是会报错:因为func1()调用时需要默认传递实例化类后的地址id参数,如果不实例化类是无法调用的
	A.func2()
	A.func3()

3.心得与体会
·类方法和实例方法最大的区别就是,调用实例方法时,需要对类进行实例化;而对类方法进行调用时,不用实例化,直接使用类的名称就能调用。
·后续还需要学习静态方法,再回过头与类方法进行比较
·网上其他一些更深的资料看了一会儿确实不好理解,提到了继承的概念,感觉这个阶段先不做记录比较好,不然杂了反而影响现阶段的学习,或许能在后续的实战中加深理解。

4.后记:
第一次在csdn上记录自己的学习笔记,格式、内容也没经过推敲,后续再慢慢完善吧。学习Python基础实际上是为了后续的实战项目和自动化测试做准备,目前的话感觉做笔记可能有点拉慢学习的进度,忍不住想着要是从大学时期狠下心开始学多好,心里顿时产生负能量。不过,有句话说的很有道理:种一棵树,最好的时间是十年前,或者是现在。有时候老想着以前的事,错过的人,是对未来没有一点帮助的,反而容易作茧自缚,止步不前。找到自己前进的道路,专注当下,就已经很优秀了。
之前老觉得自己语言组织能力还不错,但是今天实际写点东西,却感觉磕磕绊绊,看着有点尴尬,才发现自己还有巨大的提示空间啊,方方面面,路漫漫其修远兮,今天算开了个头吧。写了点东西“浪费”了一点时间,不过长远目光来看,我可能为未来的自己“充值”了?今天要把补回来。。。

PS:发表文章要选择是原创还是转载,我这。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值