类: 语法: class关键字 类名# 类名规范 大写开头  驼峰命名法class SHOldboyStudent:    # 描述该类对象的特征    school = "上海Oldboy"    name = "矮根"    age = 68    gender = "unknown"

    # 在定义阶段    # 只要包含该类的py被执行 就会做两件事情    #   1.就会创建类的名称空间    #   2.执行代码 将产生的名称放入名称空间    print("========================")

    # 描述该类对象的行为 通过函数    def say_hi(abc):        print(abc)        print("hello oldBoy")

#使用类中的属性print(SHOldboyStudent.__dict__)print(SHOldboyStudent.__dict__["name"])print(SHOldboyStudent.name)

# 使用类中的函数print(SHOldboyStudent.__dict__["say_hi"])print(SHOldboyStudent.say_hi)# 使用类直接调用类中函数时 与普通函数没有任何区别  位self仅仅是一个置参数SHOldboyStudent.say_hi(10)

对象的使用
class OldboyStudent:    # 如果每个对象的这个属性都相同 才应该定义到类中 比如所有人的学校都是上海Oldboy    school = "上海Oldboy"

# 创建对象# 语法: 在类名后加括号 与调用函数写法相同# stu = OldboyStudent()# # 访问对象的属性# print(stu.school)# print(OldboyStudent.school)

 # 修改属性的值# stu.school = "北京Oldboy"# print(stu.school)## # 增加属性# stu.room_num = "1008"# print(stu.room_num)## # 删除属性# del stu.room_num# print(stu.room_num)

# 对象 与类的名称空间是独立的# stu.school = "深圳oldboy"    # 为对象的属性赋予新的值# print(OldboyStudent.school) # 类中的属性不会变化# stu.room_num = "1008"   # 为对象增加属性# # print(OldboyStudent.room_num) #类中也不会出现新的属性# print(stu.__dict__)# print(OldboyStudent.__dict__)

# 如果对象的属性是相同的 就放到类中 作为一个公共的数据# stu.school #大家都是上海小区

# stu2 = OldboyStudent()# print(stu2.__dict__)

init函数:
# __init__称之为初始化函数  它会在创建对象的时候自动执行# 创建对象时# 1.创建一个空对象# 2.执行__init__函数 并且自动传入了这个对象

# 该函数的作用,就是为对象的属性赋初始值
#1. 使用场景 需要为每个对象定制不同的属性值#2.__init__在创建对象后自动执行#3.第一个self参数 指的是这个对象本身 不需要手动传值

1.所有程序都因该使用面向对象来设计吗?为什么?
不是所有程序都应该使用面向对象,应该面向对象会提高程序的复杂度,对于一些扩展要求不高的程序,则不一定非要使用面向对象
2.什么是对象 什么是类
对象指的是现实生活中实实在在存在的物体,并且其具备独特的特征与行为 反过来可以理解为 特征与行为的结合体
类是一些具备相同特征和技能的事物的抽象概念,不实际存在
3.在面向过程编程中我们思考解决方案时,是分析完成任务时需要哪些步骤,按照什么样的顺序来编写,而在面向对象编程中我们从操作者转变为指挥者 首先思考的是什么?
首先思考,完成任务需要哪些对象来参与
其次分析这些对象具备哪些特征和行为
最后按照分析结果编写class

4.一个类中通常包含变量和函数,它们分别用于描述什么?
变量用于描述该类对象共同的属性
函数用于描述该类对象具备的行为(技能)

5.类在定义阶段发生了什么
立即执行类中的代码 将产生的名字存放在类的名称空间中
6.创建对象时发生了什么
1.创建空对象
2.自动执行init函数 将这个对象以及额外的参数组装后传给该函数

7.什么是绑定方法,和普通函数有什么区别
绑定方法其实就是对象和函数得绑定在一起
在调用绑定方法时,会自动传入对象本身
最终执行的还是类中定义的函数
绑定方法仅仅是帮我们自动传入了对象
区别:
普通函数在调用时,根据函数声明有几个参数就一定要传几个参数
而绑定函数在调用时,会自动传入对象本身,所以通常我们手写的参数个数比声明的少一个

转载于:https://www.cnblogs.com/junge666/p/9832697.html

Python10/22--面向对象编程/类与对象/init函数相关推荐

  1. 面向对象编程——类和对象

    面向对象编程 类和对象 类(Class):用来描述具有相同属性和方法的对象的集合 class Student:name='stu'#属性def say(self):#方法print("hel ...

  2. python多个对象调用类方法、且之间有联系_趣味解读Python面向对象编程 (类和对象)...

    一.面向对象简介 考虑现实生活中,我们的思维方式是放在学生这个个人上,是学生做了自我介绍.而不是像我们刚刚写出的代码,先有了介绍的行为,再去看介绍了谁. 用我们的现实思维方式该怎么用程序表达呢? 面向 ...

  3. JAVA300集——面向对象编程-类和对象-构造方法及其重载-方法调用

    本章概述 "如何开车":(由多个步骤组成),简单问题,可以使用面向过程. "如何造车":(成千上万个零件,细节很多),复杂问题,宏观上用面向对象把握,微观操作用 ...

  4. python面向对象图片_趣味解读Python面向对象编程 (类和对象)

    一.面向对象简介 考虑现实生活中,我们的思维方式是放在学生这个个人上,是学生做了自我介绍.而不是像我们刚刚写出的代码,先有了介绍的行为,再去看介绍了谁. 用我们的现实思维方式该怎么用程序表达呢?面向过 ...

  5. Day16:面向对象编程——类和对象

    一.面向对象的程序设计 在此之前用到的事面向过程的程序设计,它的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比设计好一条流水线,考虑周全什么时候处理什么东西. 优点:极大的降低 ...

  6. 【Android开发日志】Kotlin 面向对象编程 - 类与对象(11)

    Android Studio 4.0已发布,此教程已更新至4.0版本. 面向对象,顾名思义,一定得是"对象",生活当中的人.电脑.等任何事物,他们都有各自的属性,我们编程里把这些属 ...

  7. Python零基础速成班-第9讲-Python面向对象编程(上),对象和类、初始化、继承、重写、多态、类方法、组合

    Python零基础速成班-第9讲-Python面向对象编程(上),对象和类.初始化.继承.重写.多态.类方法.组合 学习目标 修饰器 面向对象编程:对象和类.初始化.继承.重写.多态.类方法.组合 课 ...

  8. 【JAVA学习】2、面向对象编程的核心——对象和类

    [JAVA学习]面向对象编程的核心--对象和类 前言 面向过程VS面向对象 基础概念 优缺点比较 面向对象三大基础特性 封装 继承 多态 面向对象编程的五大基本原则 单一职责原则SRP(Single ...

  9. python【面向对象(类和对象)】

    1.面向对象(类和对象) 1.编程思维 根据面对问题不同人呈现出来的思维模式不同,可以将编程思维分为三种: 1.面向过程编程(穷人思想)-- 会基本的逻辑和语法(遇到问题马上想到的是解决问题的具体逻辑 ...

最新文章

  1. 使用class-dump导出其他应用头文件
  2. 【Android 文件管理】分区存储 ( 创建与查询图片文件 )
  3. 三层架构和MVC一样吗?(区别)
  4. nginx+keepalived互为主主高可用配置
  5. springmvc跨域问题
  6. 可视化工具Navicat for MySQL-操作三
  7. mxnet img2rec的使用,生成数据文件
  8. TCP拥塞控制和流量控制
  9. 第一章python绝对温标身体质量指数bmi
  10. function 多个函数用一个_程序员如何用一个脚本每天定时给多个女友发微信暖心话...
  11. 关于RadUpload上传问题总结
  12. 初来咋到,要想在此安家,先要共享3500份课后答案
  13. 封装多帧dicm图像
  14. linux dstat rpm,dstat监控工具介绍
  15. 「 英雄哪里出来 」算法博客阅读指引
  16. 业务如何驱动技术发展
  17. Android页面引导蒙版(浮层)库
  18. Juniper SRX340防火墙配置
  19. VBA之正则表达式(33)-- 网页表格提取数据
  20. Java 实现打印超市小票

热门文章

  1. oracle自带调优,oracle 参数调优
  2. android px pd sp区别,【求助】我用北京索莱宝质粒小量提取试剂盒提的质粒,电泳图...
  3. 深度学习之循环神经网络(11-b)GRU情感分类问题代码
  4. 深度学习之卷积神经网络(1)什么是卷积
  5. 2021年武大CS\南大CS\哈工CS\浙软\西交CS\天大佐治亚CS\中科院信网中心面试经验贴
  6. 数学--数论--随机算法--Pollard Rho 大数分解算法 (带输出版本)
  7. 51NOD 1212 无向图最小生成树
  8. Docker---Run命令
  9. (原创)eCos驱动分析 之 ISR是如何与硬件中断联系起来的?
  10. video thumbnails