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

1. 魔法方法

在Python中,魔法方法是指以双下划线(__)开头和结尾的一组特殊方法。魔法方法可以用来重载运算符、实现类的构造和析构等功能。以下是几个常用的魔法方法。

1.1 __init__方法

__init__方法是一个特殊的方法,用于初始化对象。在创建一个对象时,会自动调用该方法。可以在__init__方法中为对象设置属性和初始化其他数据。

class Person:

def __init__(self, name, age):

self.name = name

self.age = age

person = Person("Alice", 25)

在上面的例子中,创建了一个名为Person的类,并在__init__方法中接受name和age两个参数,然后将它们分别赋值给self.name和self.age这两个实例变量。

1.2 __str__方法

__str__方法用于返回一个对象的字符串表示形式。

class Person:

def __init__(self, name, age):

self.name = name

self.age = age

def __str__(self):

return f"Person(name={self.name}, age={self.age})"

person = Person("Alice", 25)

print(person) # 输出:Person(name=Alice, age=25)

在上面的例子中,重写了Person类的__str__方法,返回了一个表示该对象的字符串。当我们打印该对象时,会自动调用该方法。

2. 异常处理

在Python中,异常是程序运行过程中发生的错误情况。通过异常处理,我们可以捕获异常并采取相应的措施,使程序能够继续执行而不崩溃。

2.1 try-except语句

try-except语句用于捕获异常。我们可以在try块中编写可能引发异常的代码,然后在except块中处理异常。

try:

# 可能引发异常的代码

temperature = 1 / 0

except ZeroDivisionError:

# 处理异常的代码

temperature = 0

print(temperature) # 输出:0

在上面的例子中,我们试图计算1除以0,这会引发ZeroDivisionError异常。在except块中,我们捕获了该异常,并将temperature的值设为0。

2.2 多个except分支

除了捕获特定类型的异常外,我们还可以在一个try-except语句中添加多个except分支以捕获不同类型的异常。

try:

# 可能引发异常的代码

temperature = int(input("请输入温度:"))

result = 10 / temperature

except ZeroDivisionError:

# 处理除以0的异常

print("除数不能为0")

except ValueError:

# 处理非法输入的异常

print("请输入一个整数")

except Exception as e:

# 处理其他异常

print(f"发生了一个异常:{e}")

在上面的例子中,我们在try块中尝试获取用户输入的温度,并计算10除以温度。如果用户输入的温度为0,会引发ZeroDivisionError异常;如果用户输入的不是一个整数,会引发ValueError异常。在except块中,我们分别捕获这两种异常,并输出相应的错误信息。最后的Exception分支可以捕获其他类型的异常,通过变量e可以获取异常的具体信息。

总结

本文介绍了Python中的魔法方法和异常处理。魔法方法是一组特殊的方法,用于重载运算符、实现类的构造和析构等功能。常用的魔法方法包括__init__和__str__。异常处理可以帮助我们捕获和处理程序运行过程中的错误情况。通过使用try-except语句,我们可以捕获异常并采取相应的措施,使程序能够继续执行而不崩溃。

后端开发标签