1.魔术方法之构造函数与解析函数
class People(object): 实例化对象时自动执行 def __init__(self, name, age): 把属性和对象名绑定在一起, 便于访问对象的属性. self.name = name self.age = age print("创建对象成功.......") 析构函数, 当你删除对象时, 自动调用的方法。 del 对象名或者程序执行结束之后 def __del__(self): print("删除对象成功.......") if __name__ == '__main__': 创建对象 p1 = People('fentiao', 12) del p1
2.对象str与repr方法
class People(object): 实例化对象时自动执行 def __init__(self, name, age): 把属性和对象名绑定在一起, 便于访问对象的属性. self.name = name self.age = age print("创建对象成功.......") 析构函数, 当你删除对象时, 自动调用的方法。 del 对象名或者程序执行结束之后 def __del__(self): print("删除对象成功.......") __str__和__repr__都是对对象的字符串显示, 使用场景不同. 如果没有__str__的时候, 自动调用__repr__方法的内容. def __str__(self): print(‘对象名‘) print(str(‘对象名‘)) print('People(%s, %d)' %(self.name, self.age)) return 'People(%s, %d)' %(self.name, self.age) def __repr__(self): print(repr(‘对象名‘)) 或者交互式环境中直接: 对象名 return "People(%s)" %(self.name) def __hello(self): print("hello") def world(self): self.__hello() if __name__ == '__main__': 创建对象 p1 = People('fentiao', 12) print(p1) print(p1.__str__()) p1.world() print(str(p1)) print(repr(p1))
3.图书管理系统
假设每本书只有一本 class Book(object): def __init__(self, name, author, state, bookIndex): self.name = name self.author = author 0:'已借出' 1:'未借出' self.state = state self.bookIndex = bookIndex def __str__(self): return 'Book(%s, %d)' % (self.name, self.state) class BookManage(object): 存放所有书籍信息, 列表里面存放的是Book对象 books = [] def start(self): """图书管理系统初始化数据""" self.books.append(Book('python', 'Guido', 1, 'IN23445')) self.books.append(Book('java', 'Guido1', 1, 'IN23445')) self.books.append(Book('C++', 'Guido2', 1, 'IN23445')) print("初始化数据成功!") def Menu(self): """图书管理菜单栏""" while True: print(""" 图书管理操作 1). 添加书籍 2). 删除数据 3). 查询书籍 4). 退出 """) choice = input("请输入你的选择:") if choice == '1': self.addBook() elif choice == '2': self.delBook() elif choice == '3': self.isBookExist('python') elif choice == '4': exit() else: print("请输入正确的选择!") def addBook(self): print("添加书籍".center(0, '*')) name = input("书