Python10/22--面向对象编程/类与对象/init函数
类: 语法: 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函数相关推荐
- 面向对象编程——类和对象
面向对象编程 类和对象 类(Class):用来描述具有相同属性和方法的对象的集合 class Student:name='stu'#属性def say(self):#方法print("hel ...
- python多个对象调用类方法、且之间有联系_趣味解读Python面向对象编程 (类和对象)...
一.面向对象简介 考虑现实生活中,我们的思维方式是放在学生这个个人上,是学生做了自我介绍.而不是像我们刚刚写出的代码,先有了介绍的行为,再去看介绍了谁. 用我们的现实思维方式该怎么用程序表达呢? 面向 ...
- JAVA300集——面向对象编程-类和对象-构造方法及其重载-方法调用
本章概述 "如何开车":(由多个步骤组成),简单问题,可以使用面向过程. "如何造车":(成千上万个零件,细节很多),复杂问题,宏观上用面向对象把握,微观操作用 ...
- python面向对象图片_趣味解读Python面向对象编程 (类和对象)
一.面向对象简介 考虑现实生活中,我们的思维方式是放在学生这个个人上,是学生做了自我介绍.而不是像我们刚刚写出的代码,先有了介绍的行为,再去看介绍了谁. 用我们的现实思维方式该怎么用程序表达呢?面向过 ...
- Day16:面向对象编程——类和对象
一.面向对象的程序设计 在此之前用到的事面向过程的程序设计,它的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比设计好一条流水线,考虑周全什么时候处理什么东西. 优点:极大的降低 ...
- 【Android开发日志】Kotlin 面向对象编程 - 类与对象(11)
Android Studio 4.0已发布,此教程已更新至4.0版本. 面向对象,顾名思义,一定得是"对象",生活当中的人.电脑.等任何事物,他们都有各自的属性,我们编程里把这些属 ...
- Python零基础速成班-第9讲-Python面向对象编程(上),对象和类、初始化、继承、重写、多态、类方法、组合
Python零基础速成班-第9讲-Python面向对象编程(上),对象和类.初始化.继承.重写.多态.类方法.组合 学习目标 修饰器 面向对象编程:对象和类.初始化.继承.重写.多态.类方法.组合 课 ...
- 【JAVA学习】2、面向对象编程的核心——对象和类
[JAVA学习]面向对象编程的核心--对象和类 前言 面向过程VS面向对象 基础概念 优缺点比较 面向对象三大基础特性 封装 继承 多态 面向对象编程的五大基本原则 单一职责原则SRP(Single ...
- python【面向对象(类和对象)】
1.面向对象(类和对象) 1.编程思维 根据面对问题不同人呈现出来的思维模式不同,可以将编程思维分为三种: 1.面向过程编程(穷人思想)-- 会基本的逻辑和语法(遇到问题马上想到的是解决问题的具体逻辑 ...
最新文章
- 使用class-dump导出其他应用头文件
- 【Android 文件管理】分区存储 ( 创建与查询图片文件 )
- 三层架构和MVC一样吗?(区别)
- nginx+keepalived互为主主高可用配置
- springmvc跨域问题
- 可视化工具Navicat for MySQL-操作三
- mxnet img2rec的使用,生成数据文件
- TCP拥塞控制和流量控制
- 第一章python绝对温标身体质量指数bmi
- function 多个函数用一个_程序员如何用一个脚本每天定时给多个女友发微信暖心话...
- 关于RadUpload上传问题总结
- 初来咋到,要想在此安家,先要共享3500份课后答案
- 封装多帧dicm图像
- linux dstat rpm,dstat监控工具介绍
- 「 英雄哪里出来 」算法博客阅读指引
- 业务如何驱动技术发展
- Android页面引导蒙版(浮层)库
- Juniper SRX340防火墙配置
- VBA之正则表达式(33)-- 网页表格提取数据
- Java 实现打印超市小票
热门文章
- oracle自带调优,oracle 参数调优
- android px pd sp区别,【求助】我用北京索莱宝质粒小量提取试剂盒提的质粒,电泳图...
- 深度学习之循环神经网络(11-b)GRU情感分类问题代码
- 深度学习之卷积神经网络(1)什么是卷积
- 2021年武大CS\南大CS\哈工CS\浙软\西交CS\天大佐治亚CS\中科院信网中心面试经验贴
- 数学--数论--随机算法--Pollard Rho 大数分解算法 (带输出版本)
- 51NOD 1212 无向图最小生成树
- Docker---Run命令
- (原创)eCos驱动分析 之 ISR是如何与硬件中断联系起来的?
- video thumbnails