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

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, 静态方法不能方法类变量和实例变量;

         

猜你喜欢

转载自www.cnblogs.com/weizitianming/p/9090916.html
今日推荐