zoukankan      html  css  js  c++  java
  • 类与对象

    一 类与对象

    对象:属性和方法的结合体

    类:一系列共同的属性和方法(类就是一系列对象相似的特征与技能的结合体)

    现实生活中:先有对象再有类

    程序中:先有类再有对象

    二 现实世界中定义类和对象

    2.1 定义对象

    • 对象1:

      ​ 特征:

      ​ 学校:xxx
      姓名:猪哥

      ​ 年龄:18

      ​ 性别:male

      技能:

      ​ 选课

    • 对象2:

      ​ 特征:

      ​ 学校:xxx

      ​ 姓名:如花

      ​ 年龄:19

      ​ 性别:female

      技能:

      ​ 选课

    2.2定义类

    • 学生类:

      ​ 相似的特征:

      ​ 学校='xxx'

      ​ 相似的技能:

      ​ 选课

    三 程序中定义类和对象

    定义类(类名建议用驼峰命名)

    class 关键字 类名:
    class Student:
        #变量表示属性
        school='xxx'
        def choose(self):
            print('选课...')
        def student(self):
            print('学习...')
    #生成对象  类加括号,生成对象
    stu1=Student()
    #获取属性和方法  通过.获取
    print(stu1.school)#xxx
    print(stu1.choose) #<bound method Student.choose of <__main__.Student object at 0x000002443C347C88>>
    #查看类中的属性和函数
    print(Student.__dict__)#{'__module__': '__main__', 'school': 'xxx', 'choose': <function Student.choose at 0x000001A6F0383378>, 'student': <function Student.student at 0x000001A6F0383400>, '__dict__': <attribute '__dict__' of 'Student' objects>, '__weakref__': <attribute '__weakref__' of 'Student' objects>, '__doc__': None}
    
    print(Student.__dict__['school'])#xxx
    print(Student.__dict__['choose'])#<function Student.choose at 0x000001A6F0383378>
    Student.__dict__['choose'](1)#选课...
    Student.choose(1)#选课...xxx
    print(Student.school)#xxx
    #获取对象的属性和方法
    print(stu1.__dict__) #{}
    print(stu1.school) #xxx
    #对象来调用方法,第一个参数不用传
    print(stu1.choose) #<bound method Student.choose of <__main__.Student object at 0x00000138EE08DF98>>
    
    stu2=Student()
    print(stu2.school)#xxx
    #对象自己的属性和方法
    stu1.name='nick sb'
    stu1.school='xxxx'
    print(stu1.school)#xxxx
    print(stu1.__dict__)#{'name': 'nick sb', 'school': 'xxxx'}
    
    
    

    属性查找顺序

    先从对象自身找----->类中找----->报错

    Student.school="xxxx"
    stu1=Student()
    print(stu1.school)
    

    向对象中放属性

    # 第一种方式:
    stu1=Student()
    stu1.name='nick sb'
    # 第二种方式:通过__init__方法
    class Student:
        #变量表示属性
        school='xxx'
        #__init__ 看好名字,不是__int__
        def __init__(self,name):
            self.name=name
        def choose(self):
            print("选课....")
        def study(self):
            print('学习...')
    
    

    产生对象

    # stu1=Student()
    stu1=Student('nick')
    #内部帮我们做了一些事:当我在实例化产生对象的时候,会自动调用__init__方法,完成对象的初始化
    print(stu1.name)
    stu2=Student('jason')
    print(stu2.name)
    
    def change(obj,name):
        obj.name=name
    
    stu1=Student('xxx')
    Student.__init__(stu1,'nick')
    change(stu1,'nick')
    print(stu1.name)
    
    stu2=Student('李铁蛋')
    print(stu2.name)
    

    总结

    类与对象

    ​ -定义类
    ​ class关键字 类名:
    ​ pass
    ​ -产生对象
    ​ 对象=类名()
    ​ -类:
    ​ 1 获取类的属性和方法
    ​ 类.dict
    ​ 2 类来调用属性和方法
    ​ 1 通过dict来取(复杂,不用)
    ​ 2 类名.属性/函数
    ​ -对象:
    ​ 1 对象获取属性和方法
    ​ 对象.dict
    ​ 2 对象来调用属性和方法
    ​ 对象.属性/方法

    产生对象(绑定方法,属性的查找顺序)

    ​ -属性查找顺序
    ​ -先从对象自身找------>类中找----->报错
    ​ -对象赋属性
    ​ -方式一:
    ​ stu1=Student()
    ​ stu1.name='nick sb'
    ​ -方式二(通过__init__):
    ​ -在类中定义该方法,方法上写一些参数
    ​ -在对象实例化产生对象时,在括号中传的值,会被传到__init__中
    ​ -绑定方法:
    ​ -定义在类内部
    ​ -对象来调用,会自动把对象传过来,在方法内部就可以修改该对象

  • 相关阅读:
    select SCOPE_IDENTITY()用法
    SQL 2005 with(nolock)详解
    .NET4进行COM互操作导出数据到Excel
    Counterfeit Dollar 1013 pku
    Numbers that count 1016 PKU
    对局问题 ——取火柴问题(转)
    (a^b) mod c
    对局问题——放硬币问题(转)
    对局问题 ——取石子问题– 1堆(转)
    Follow My Logic 1048 PKU
  • 原文地址:https://www.cnblogs.com/aden668/p/11412951.html
Copyright © 2011-2022 走看看