Python——class的基础知识(Python的实例方法,类方法,静态方法之间的区别及调用关系)



如果只看这个图,很多人可能会看的一头雾水,特别是学过完全面向对象语言的同学, Python 是双面向的,既可以面向函数编程,也可以面向对象编程,所谓面向函数就是单独一个. py 文件,里面没有类,全是一些函数,调用的时候导入模块,通过模块名.函数名()即可调用,完全不需要类,那么你可能会问,那要类还有什么毛用? 类就是用来面向对象编程啦,类可以有自己的属性,类可以创建很多实例,每个实例可以有不同的属性,这也就保存了很多私有的数据,总之都有存在的必要.

再来看上面这张图,在类里面定义的函数就是方法,类方法需要@ classmethod 修饰并且有个隐藏参数 cls,实例方法必须有个参数 self, 静态方法必须有 @staticmethod修饰,类和实例都可以访问静态方法,实例可以访问实例方法也可以访问类方法,类可以访问类方法也可以访问实例方法,访问实例方法必须要带参数 self, 可以理解为类其实也是一个实例,类访问实例方法不带参数会报错的.类本身可以访问函数,实例却不行.

总结:类的属性:

公有属性;(没有两个下划线开始)

私有属性;(函数、方法或属性的名字以两个下划线开始)

实例属性;(以self作为前缀的属性,没有self作为前缀声明的,则该变量只是普通的局部变量;即一个对象对应一个);

静态属性;(静态变量,可以被类直接调用,也可被实例化对象调用;可以被多个实例化对象共享;)

类的内置方法:方法名是由前后两个下划线加字母组成。比如:__init__(self):

staticmethod()或@staticmethod 指令的方式把普通的函数转换为静态方法。

是否有一个self参数,是区别方法和函数的标志;

类方法的作用和静态方法相似,都可以被其他实例对象共享。不同的是类方法必须提供self参数。类方法使用classmethod()或“@classmethod”指令定义。静态方法可以没有self参数。

Python支持多继承。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值