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中的魔法方法和异常处理的基础概念及使用方法,读者可以继续深入学习。