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

Posted 微子天明

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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, 静态方法不能方法类变量和实例变量;

 

         

 

以上是关于Python之路,第十八篇:Python入门与基础18的主要内容,如果未能解决你的问题,请参考以下文章

Python之路第十八篇:Web框架们

Python之路第十八篇:Web框架们

Python之路第十八篇:前端HTML

Python之路(第十八篇)shutil 模块zipfile模块configparser模块

Python全栈开发之路 第十八篇:Ajax技术

Python之路第十八篇Django小项目简单BBS论坛部分内容知识点