面向对象最重要的概念就是类(Class)和实例(Instance),类是抽象的模板,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。下面的实例代码说明了类的一些基本的知识点。
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2020-03-08 4 # @Author : Flyinghappy (671474@qq.com) 5 # @Link : https://www.cnblogs.com/flyinghappy/ 6 # @Version : $Id$ 7 import json 8 import os 9 10 class Person: 11 '''类里面定义的函数,第一个参数默认是self''' 12 num=0#类属性 13 def __init__(self,name='',age=20):#特殊方法,在创建类实例的时候把name,age等属性绑定到实例。 14 self.__name=name#类实例变量,前面'__'双下划线限制外部访问 15 self.age=age#类实例变量 16 self.talking_note=[]#类实例变量 17 def talk(self,talk_something):#类方法 18 self.talking_note.append(talk_something) 19 print(talk_something) 20 def save(self):#类方法 21 filename='person'+'.json' 22 person_info=[self.__name,self.age,self.talking_note,person.num] 23 with open(filename,'w') as f: 24 json.dump(person_info,f) 25 f.close() 26 27 if __name__ == '__main__': 28 person=Person(name='flyinghappy',age=40)#声明一个类实例person,并初始化name和age属性 29 '''下面的while循环,利用Person类属性的num''' 30 while person.num<5: 31 note='i am number:'+str(person.num) 32 person.talk(note) 33 person.num+=1 34 else: 35 person.save()
输出结果:
person.json文件中的存储内容如下:
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Date : 2020-03-08# @Author : Flyinghappy (671474@qq.com)# @Link : https://www.cnblogs.com/flyinghappy/# @Version : $Id$import jsonimport os
class Person: '''类里面定义的函数,第一个参数默认是self''' num=0#类属性 def __init__(self,name='',age=20):#特殊方法,在创建类实例的时候把name,age等属性绑定到实例。 self.__name=name#类实例变量,前面'__'双下划线限制外部访问 self.age=age#类实例变量 self.talking_note=[]#类实例变量 def talk(self,talk_something):#类方法 self.talking_note.append(talk_something) print(talk_something) def save(self):#类方法 filename='person'+'.json' person_info=[self.__name,self.age,self.talking_note,person.num] with open(filename,'w') as f: json.dump(person_info,f) f.close()
if __name__ == '__main__': person=Person(name='flyinghappy',age=40)#声明一个类实例person,并初始化name和age属性 '''下面的while循环,利用Person类属性的num''' while person.num<5: note='i am number:'+str(person.num) person.talk(note) person.num+=1 else: person.save()
来源:https://www.cnblogs.com/flyinghappy/p/12444506.html