Python中的Dunder或魔术方法
魔术方法,使我们可以在面向对象的编程中做一些漂亮的技巧。这些方法由两个下划线(__)用作前缀和后缀。例如,充当拦截器,当满足某些条件时会自动调用它们。
在python中,__repr__是一个内置函数,用于计算对象的“正式”字符串表示形式,而__str__是一个内置函数,用于计算对象的“非正式”字符串表示形式。
范例程式码
class String:
# magic method to initiate object
def __init__(self, string):
self.string = string
# Driver Code
if __name__ == '__main__':
# object creation
my_string = String('Python')
# print object location
print(my_string)输出结果
<__main__.String object at 0x000000BF0D411908>
范例程式码
class String:
# magic method to initiate object
def __init__(self, string):
self.string = string
# print our string object
def __repr__(self):
return 'Object: {}'.format(self.string)
# Driver Code
if __name__ == '__main__':
# object creation
my_string = String('Python')
# print object location
print(my_string)输出结果
Object: Python
我们正在尝试向其中添加一个字符串。
范例程式码
class String:
# magic method to initiate object
def __init__(self, string):
self.string = string
# print our string object
def __repr__(self):
return 'Object: {}'.format(self.string)
# Driver Code
if __name__ == '__main__':
# object creation
my_string = String('Python')
# concatenate String object and a string
print(my_string + ' Program')输出结果
TypeError: unsupported operand type(s) for +: 'String' and 'str'
现在将__add__方法添加到String类
范例程式码
class String:
# magic method to initiate object
def __init__(self, string):
self.string = string
# print our string object
def __repr__(self):
return 'Object: {}'.format(self.string)
def __add__(self, other):
return self.string + other
# Driver Code
if __name__ == '__main__':
# object creation
my_string = String('Hello')
# concatenate String object and a string
print(my_string +' Python')输出结果
Hello Python
热门推荐
10 读书祝福语女生短句简短
11 感谢同事新婚祝福语简短
12 感谢教官文案祝福语简短
13 员工聚会蛋糕祝福语简短
14 元宵发客户祝福语简短
15 给团队信心祝福语简短
16 医美的祝福语大全简短
17 异国姻缘的祝福语简短
18 兄妹拍照祝福语简短的话