Python基础入门之魔法方法与异常处理

  • Post category:Python

Python基础入门之魔法方法与异常处理

本文将向读者介绍Python中的魔法方法和异常处理。魔法方法是类中的特殊方法,在类的实例化、运算符重载、属性访问等方面提供了很大的灵活性,而异常处理则可以使程序更加健壮,避免程序出现不可避免的崩溃。

魔法方法

__init__方法

在Python中,如果你想在创建一个对象的时候初始化一些属性,就需要用到__init__方法。在类实例化时,__init__方法会自动执行,并接受一个self参数,代表当前实例对象。我们可以在__init__方法中为该实例对象添加属性和方法。例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p1 = Person("Tom", 18)
print(p1.name)  # 输出 Tom
print(p1.age)  # 输出 18

__str__方法

__str__是魔法方法,给出一个对象的文本描述,当我们打印一个对象时,输出的不再是对象本身的地址,而是通过魔法方法__str__返回的字符串。例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return "Name: {} Age: {}".format(self.name, self.age)

p1 = Person("Tom", 18)
print(p1)  # 输出 Name: Tom Age: 18

__call__方法

如果一个对象可以像函数一样被调用,那么我们可以给这个对象添加一个__call__方法。例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return "Name: {} Age: {}".format(self.name, self.age)

    def __call__(self):
        print("Hello, I am {}.".format(self.name))

p1 = Person("Tom", 18)
p1() # 输出 Hello, I am Tom.

异常处理

Python中的异常处理非常简单,使用try…except语句可以轻松地捕获异常。在try语句后添加except语句,可以在程序出现异常时执行相应的操作。例如:

try:
    x = 1 / 0
except ZeroDivisionError:
    print("除数不能为0")

如果代码块中出现除数为0的情况,就会抛出ZeroDivisionError异常,然后执行except语句块中的代码。

同时,为了适应多种情况,Python的except语句还可以捕获多个异常。例如:

try:
    x = 1 / 0
except (ZeroDivisionError, NameError):
    print("出现了ZeroDivisionError或NameError")

以上是本文介绍的Python中的魔法方法和异常处理的基础概念及使用方法,读者可以继续深入学习。