Python中的魔法方法

2020 年 06 月 04 日 • 阅读数: 219

Python中的魔法方法

简介

  • 魔法方法是指Python内部已经包含的,被双下划线所包围的方法
  • 这些方法在进行特定的操作时会自动被调用,可以更大程度的使程序更加灵活
  • 魔法方法就像是一个独立的类型,它可以增强类的类型和行为
  • 在使用的时候不需要显式的调用,在python的语法或者对应的函数下会隐式的调用它们

小栗子

  • 通过getitem这个魔法方法可使对象具有可迭代的功能
  • 并且可以直接对对象进行切片操作
  • 可以使用len()函数来获取长度等
class Company(object):
    def __init__(self,employee_list):
        self.employee = employee_list
        
    def __getitem__(self,item):
        return self.employee[item]
company = Company(['ly','wmm','wjl','zxy'])
[item for item in company]
['ly', 'wmm', 'wjl', 'zxy']
company = company[:2]
len(company)
2

字符串相关str和repr

  • 都是打印对象的时候返回的字符串
  • str是在对对象进行字符串格式化的时候调用的
  • repr是开发模式下调用的
class People(object):
    def __init__(self,employee_list):
        self.employee = employee_list
        
    def __str__(self):
        return ','.join(self.employee)
    
    def __repr__(self):
        return ' '.join(self.employee)
people = People(['ly','wmm','wjl','zxy'])
print(people)
ly,wmm,wjl,zxy
people
ly wmm wjl zxy

。。。未完待续

标签: Python面向对象
添加评论
评论列表
没有更多内容