zoukankan      html  css  js  c++  java
  • 一、类的定义

    类是对象相似数据与功能的集合体 所以类体中最常见的是变量与函数的定义,但是类体其实是可以包含任意其他代码的

    注意:类体代码是在类定义阶段就会立即执行,会产生类的名称空间

    class Student:
        # 1、变量的定义
       stu_school='oldboy'

        # 2、功能的定义
       def tell_stu_info(stu_obj):
            print('学生信息:名字:%s 年龄:%s 性别:%s' %(
                stu_obj['stu_name'],
                stu_obj['stu_age'],
                stu_obj['stu_gender']
           ))

        def set_info(stu_obj,x,y,z):
            stu_obj['stu_name']=x
            stu_obj['stu_age']=y
            stu_obj['stu_gender']=z

    二、访问类中的属性

    1.访问数据属性

    Student.stu_school

    2.访问函数属性

    Student.set_info

    三、类的实例化

    stu1_obj=Student()
    stu2_obj=Student()
    stu3_obj=Student()
    调用类的过程又称之为实例化,发生了三件事
    1、先产生一个空对象
    2、python会自动调用类中的__init__方法然将空对象已经调用类时括号内传入的参数一同传给__init__方法
    3、返回初始完的对象

    四、init

    总结init方法 1、会在调用类时自动触发执行,用来为对象初始化自己独有的数据 2、init内应该存放是为对象初始化属性的功能,但是是可以存放任意其他代码,想要在 类调用时就立刻执行的代码都可以放到该方法内 3、init方法必须返回None

    五、类的数据查找

    1.类的数据属性是共享给所有对象用的,大家访问的地址都一样

    print(id(Student.stu_school))
    print(id(stu1_obj.stu_school))
    print(id(stu2_obj.stu_school))
    print(id(stu3_obj.stu_school))
    # 1877338288176
    # 1877338288176
    # 1877338288176
    # 1877338288176

    2、类中定义的函数主要是给对象使用的,而且是绑定给对象的,虽然所有对象指向的都是相同的功能, 但是绑定到不同的对象就是不同的绑定方法,内存地址各不相同

    Student.tell_stu_info(stu1_obj)
    Student.tell_stu_info(stu2_obj)
    Student.tell_stu_info(stu3_obj)
    stu1_obj.tell_stu_info() 
    stu2_obj.tell_stu_info()
    stu3_obj.tell_stu_info()

    上面两种方法的结果相同——谁来调用绑定方法就会将谁当做第一个参数自动传入!


  • 相关阅读:
    c++之单链表
    c++之变量的生存期及可见性
    c++之结构体-结构数组排序
    c++之递归函数
    c++之指针练习
    C++之面向对象之构造函数和拷贝构造方法,以及析构方法
    C++之命名空间
    C++之面向对象之对象的使用
    Hadoop RPC实现
    BP(商业计划书写)
  • 原文地址:https://www.cnblogs.com/bailongcaptain/p/12655532.html
Copyright © 2011-2022 走看看