其他分享
首页 > 其他分享> > 类的定义和对象的产生

类的定义和对象的产生

作者:互联网

类的定义和对象的产生

对象:特征与技能的结合体
类:一系列对象相似的特征与相似的技能的结合体

强调:站在不同的分类,划分的分类不一定一样
#问题来了
到底是先分类还是先有对象?
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)

标签:__,定义,course,对象,name,产生,dict,print,stu
来源: https://www.cnblogs.com/fkzxps/p/15635088.html