python3类实例和错误处理

发布时间 2023-09-08 17:15:02作者: carol2014

类实例

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