一、简单的定义类 1.定义类,把分析的对象编程代码 class Book: def __init__(self,title,price,author):#构造函数,用来初始化函数,实例初始化时直接写在括号里不用麻烦 1.此函数只是用来初始化值用的 self.title=title#可把self理解为book1,即book1的标题等于传过来的标题 self.price=price self.author=author 2.对象的行为,可以自己定义函数,会自己默认加上self,表示通过实例区调用 def print_info(self): print('当前这本书的信息如下') print('标题:{}'.format(self.title)) print('价格:{}'.format(self.price)) print('作者:{}'.format(self.author)) 2.实例化 book1=Book('python',22,'小王') print(book1.title,book1.author,book1.price) 初始化后信息也可以更改 book1.price=32 book1.print_info()
二、全局属性与实例属性 class Book: 带有self的属性都是跟实例有关,如果要定义一个全局的属性,则不能加self count=0 #如果不想给初始值也可以赋默认值,price=0,但是默认值的参数必须放在命名值的后面 def __init__(self,title,price=0,author=None): self.price=price self.title=title self.author=author Book.count+=1 #删除对象执行 def __del__(self): Book.count-=1 #加上行为 def print_info(self): print('当前这本书的信息如下') print('标题:{}'.format(self.title)) print('价格:{}'.format(self.price)) print('作者:{}'.format(self.author)) 若想让函数与实例无关,只与类有关,把self删除 def cls_method(): print('类函数与逻辑上实例无关') class Student: def __init__(self,name,age): self.name=name self.age=age 三、继承 class Employee: def __init__(self,name,department,salary): self.name=name self.department=department self.salary=salary def working(self): print('员工:{}在工作'.format(self.name)) #子类 class Programer(Employee):#表明Programer程序员类继承Employee def __init__(self,name,department,salary,specialty,project):#在父类的基础上添加了自己特有的specialty,project super().__init__(name,department,salary)#调用超类的初始化方法 self.project=project self.specialty=specialty def working(self): print('员工:{}在开发项目:{}'.format(self.name,self.project)) if __name__=='__main__': book=Book('python经典') book2 = Book('java') book3 = Book('c#') print(book.price) book.print_info() print('图书的数量:{}'.format(Book.count)) Book.cls_method() s=Student('tom',age) print(s.age) p=Programer('小王','技术部','1k','python','A项目') print(p.project) 多态:是同一类别的不同实例对同一个消息做出不同的响应