一、类的定义

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

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

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()

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


原文地址:https://www.cnblogs.com/bailongcaptain/p/12655532.html