class Car(object):
name = "Car"
def __init__(self, name):
self.name = name
# 类方法通过@classmethod装饰器实现,只能访问类变量,不能访问实例变量;通过cls参数传递当前类对象,不需要实例化。
@classmethod
def run(cls, speed):
print(cls.name, speed, "行驶")
# 静态方法 @staticmethod 装饰的不带 self 参数的方法;在静态方法中无法访问类和实例中的任何属性;调用时并不需要传递类或实例。
@staticmethod
def drive(speed):
print(Car.name, speed, "行驶")
# 实例方法
def pilot(self, speed):
print(self.name, speed, "行驶")
class BYD(Car):
name = "BYD"
# 实例变量访问
c = BYD("BYD 唐")
c.run("101迈") # BYD 101迈 行驶
c.drive("102迈") # Car 102迈 行驶
c.pilot("103迈") # BYD 唐 103迈 行驶
# 类变量访问
BYD.run("111迈") # BYD 111迈 行驶
BYD.run("112迈") # BYD 112迈 行驶
try:
raise ValueError("value error") # 抛出异常
except (ValueError, OSError) as err: # 处理指定类型异常
print("出现异常")
print(err)
except:
print("处理全部其它异常") # 处理全部其它异常
else:
print("没有异常发生") # 没有异常发生
finally:
print("必须执行") # 必须执行的代码
try:
x = 1 / 0
except ZeroDivisionError as err: # 为异常指定变量err
print(err) # division by zero