首页 > 编程语言 > 详细

Python之路,第十八篇:Python入门与基础18

时间:2018-05-25 23:08:55      阅读:230      评论:0      收藏:0      [点我收藏+]

python3  面向对象编程2

 类方法:

         @classmethod

作用:1,类方法是只能访问类变量的方法;

            2,类方法需要使用@classmethod 装饰器定义;

            3,类方法的第一个参数是类的实例, 约定写成cls

说明:1, 类实例和对象实例都可以调用类方法;

           2, 类方法不能方法实例变量

 

类方法和实例方法对比:

         1,类方法能够访问类变量,不能访问实例变量;

              实例方法能够访问类变量,也能访问实例变量

         2,类方法可以用实例来调用,也可以用类来调用;

              实例方法在调用时必须传入实例;

技术分享图片
 1 class Bank:
 2     moneys = 10000000 #一千万
 3     @classmethod
 4     def total_money(cls):
 5         print("某银行总行资金数:", cls.moneys)
 6 
 7     def __init__(self, b):
 8         self.branch = b
 9         self.moneys = 5000000
10         self.__class__.moneys -= 5000000
11 
12 
13 Bank.total_money() #某银行总行资金数: 10000000
14 b1 = Bank("xxx地址支行")
15 b1.total_money() #某银行总行资金数: 5000000
View Code

 

静态方法

        @staticmethod

作用:1, 静态方法是普通的函数;

           2,静态方法定义在类的内部,只能凭借该类和实例调用

           3,静态方法需要使用@staticmethod 装饰器定义

           4,静态方法与普通函数定义相同,不需要传入self实例参数和cls类参数;

说明:1, 类实例和对象实例都可以调用静态方法;

           2, 静态方法不能方法类变量和实例变量;

 

         

 

Python之路,第十八篇:Python入门与基础18

原文:https://www.cnblogs.com/weizitianming/p/9090916.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!