类方法和实例方法
定义:通过类名来访问的方法叫类方法
通过对象来访问的方法叫实例方法
类方法格式:
@classmethod
def 方法名(cls):
代码块
注意
在方法名上一行必须添加 @classmethod
第一个参数必须设为cls,功能类似于self,不是关键字,也可以改名
cls代表当前类名 self代表当前对象
class Movie():
count = 0
def __init__(self, name):
self.name = name
Movie.count += 1
@classmethod
def show_count(cls):
print('已经有 %d 个人看了这部电影' % cls.count)
print(cls)
def test(self):
print('我是实例方法')
print(self)
# print(cls.count)
print(Movie.count)
Doll.show_count()
objA = Movie('小强')
objB = Movie('小龚')
objC = Movie('小杨')
Movie.show_count()
objA.show_count()
objB.show_count()
objC.show_count()
print('~~~~~~~~~~~~~~~')
# Movie.test()
objA.test()
类方法既可以通过类访问,也可以通过对象来访问
实例只能通过对象来访问
类方法只可以访问类属性
实例方法可以直接访问实例属性,可以间接访问类属性和类方法
静态方法
定义:不需要使用类属性,也不需要使用实例属性的方法
用途:说明书、更新内容等
格式:
@classmethod
def 静态方法名():
代码块
class Movie():
name = 'coco'
@staticmethod
def explain():
print('该电影取材自墨西哥')
a = Movie()
a.explain()
Movie.explain()
异常
定义:在程序执行过程中, 如果发生了错误, 那么程序会立马终止, 并提示一些错误信息, 这就是"异常"
格式1:
基本用法:
try:
正在执行代码的区域a
except:
处理异常的区域b
区域c
a错误 ==> b
a正常 则执行完a后 ==> c
不管a正常与否,c都会