魔法方法就是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个, 那么这个方法就会在特殊的情况下被Python所调用,你可以定义自己想要的行为,而这一切都是自动发 生的,它们经常是两个下划线包围来命名的(比如 __init___ , __len__ ),Python的魔法方法是非常强大的所以了解其使用方法也变得尤为重要!
__init__ 构造器,当一个实例被创建的时候初始化的方法,但是它并不是实例化调用的第一个方法。
__new__ 才是实例化对象调用的第一个方法,它只取下cls参数,并把其他参数传给 __init___。
___new__ 很少使用,但是也有它适合的场景,尤其是当类继承自一个像元祖或者字符串这样不经常改变的类型的时候。
__call__ 让一个类的实例像函数一样被调用。
__getitem__ 定义获取容器核喊中指定元素的行为,相当于self[key]。
__getattr__ 定义当用户试图改悔野访问一个不存在属性的时候的行为。
__setattr__ 定义当一个属性被设置的时候的前腊行为。
__getattribute___ 定义当一个属性被访问的时候的行为。
def magic_square(input_file):
import xlrd
data=xlrd.open_workbook(input_file)
sheet1=data.sheet_by_index(0)
i=0
result=[]
diag1=0
diag2=0
while i<4:
row=sheet1.row_values(i)
col=sheet1.col_values(i)
add1=0
add2=0
for ele in range(0,len(row)):
add1=add1+row[ele]
add2=add2+row[ele]
result.append(add1)
result.append(add2)
diag1=diag1+row[i]
diag2=diag2+row[3-i]
i=i+1
result.append(diag1)
result.append(diag2)
result=set(result)
if len(result)>1:
print('False'改含源)
else:
print('True')
注老伏意格式,看下面这个图核态
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)