类的定义和对象的产生
作者:互联网
类的定义和对象的产生
对象:特征与技能的结合体 类:一系列对象相似的特征与相似的技能的结合体 强调:站在不同的分类,划分的分类不一定一样 #问题来了 到底是先分类还是先有对象? 1.程序中: 必须先定义类,然后调用类产生的对象 2.现实生活中 先有对象,再有类 """ 使用专业的语法定义类 1.定义函数 def 函数名(): pass 2.定义类 Class 类名(): pass """" #定义类 """ 发生了生么事? 1.立即执行类代码 2.产生以个类的名称空间,把类体里面执行的名字都仍到名称空间中(大字典) 3.把类的名称空间捆绑给__dict__,类名.__dict__ """ #类名一般情况下手写字母大写 Class Student(): #定义一个属性 school = 'SH' #定义一个技能(函数) def choose_course(stu_dict, course): stu_dict['course'].append(course) print('%s选课成功 %s' % (stu_dict['name'],stu_dict['course'])) print('....') #查看名称空间 #调用类产生的对象 默认产生的就是一个空间对象{} stu1 =Student() stu2 =Student() stu3 =Student() stu4 =Student() print(stu1.__dict__) print(stu2.__dict__) print(stu3.__dict__) print(stu4.__dict__)
给对象制定自己独有的属性
class Student(): #定义一个属性 schonnl = 'sh' #初始化方法 #调用类自动触发的函数 #该方法不一定要定义,需要用到就定义,不需要不要刻意定义 def__init__(stu_obj, name, age, gender): #空对象.name = name #空对象.age = age #空对象.gender = gender stu_obj.name = name # stu1.__dict__['name'] = 'jason' stu_obj.age = age # stu1.__dict__['age'] = 18 stu_obj.gender = gender # stu1.__dict__['gender'] = 'male'、 # return None # 在这个方法中不能有返回值, #定义一个(函数)技能 def choose_course(stu_dic, course): stu_dict['course'].append(course) print('%s选课成功 %s' % (stu_['name'],stu_dict[course])) #调用类发生了几件事? ''' 1.得到一个空对象 2.调用了student.__dict__(空对象,'ly',19,'male') 3.得到一个初级化结果 ''' stu1 = Student('ly',19,'male') stu2 = Student('jason', 10, 'male') # stu1 = Student() # print(stu1.__dict__) # print(stu2.__dict__) # print(stu1.name) # print(stu2.name) # 属性的查找:先从自己的对象中查找,然后在去产生对象的类中取找 stu1.school = 'qwert' print(stu1.school)
-
属性的查找顺序
-
版本3 class student(): #定义一个属性 school = 'sh' def__init__(self,name,age, course = none): if course is none: course = [] self.name = name self.age = age self.gender = gender self.course = course def choose_course(self,course) print('%s选课成功%s' % (self.name,self.course)) def func(self,name,age) #属性的查找: #1.类属性:在类中写的属性就成为类属性 #2.对象属性:在对象自己的名称空间中的属性就是对象属性 #类属性的查找 #1.查 #print(student.school) #2.增加 #student.country = 'china' #3。改 #student.school = 'bj' #4.删除 #del student.school #print(student.__dict__) #{} stu = Student('ly', 18, 'male') # 实例化对象, stu就是一个实例 #对象属性 #1.查 #print(stu.name) #print(stu.age) #print(stu.gender) 2. 增 # stu.aaa = 'aaa' # # # 3. 改 # stu.name = 'bbb' # 4. 删除 # del stu.name # print(stu.__dict__) #类中的方法,类可以调用,对象也可以调用 #类调用方法 #student.choose_course(stu,'python') #类调用,函数的参数有几个就传几个 #print(student.choose_course) #对象调用的方法 #类中的方法, 雷克以调用,对象也可以调用,但是,推荐对象来调用,因为对象来调用,会把自己当成第一个参数传递给函数 stident.choose_course('python') ## stu.choose_course(stu, 'python') class Teacher(): pass print(isinstance(123, int)) print(isinstance(stu, Teacher))
标签:__,定义,course,对象,name,产生,dict,print,stu 来源: https://www.cnblogs.com/fkzxps/p/15635088.html