一、面向对象编程

我们最开始写代码是面向过程编程的,即:一步步按顺序去实现

后来我们学习了函数,把这些功能封装到函数里面,需要实现某个功能的时候直接调用就行,这样可以减少代码的重复性,这就是函数式编程

现在我们学习第三种编程方法:面向对象编程—— 一切事物皆为对象 ,面向对象编程是一种编程设计思想。面向对象程序设计作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。面向对象的语言支持的概念包括:类与对象、继承、多态。

二、类和实例

类是抽象出来的模板(共性),比如 歌手类

实例是根据我们的类创建出来的一个个具体的“对象,每个对象都有相同的方法,但各自的数据不同,例如:许嵩、陈奕迅、李荣浩

1、定义类的方法(与定义函数的方法类似)

定义函数的方法:

def f():

pass

定义类的方法:

方法:class 类名:

例如定义一个歌手类,注意:类名同变量名,使用大驼峰命名法; eg:HeloWorld, helloWorld

三引号中的内容是解释这个类的用途

class Singer:

'''这是一个歌手类'''

pass

2、实例化对象

vae = Singer()

总结:

1、Python中一切皆对象

2、新建一个对象的过程叫做实例化,而面向对象就是这个类的一个实例

3、属性

每个对象都有相同的方法,但各自的数据可能不同,我们需要让我们的对象拥有自己的个性

class Singer:

'''这是一个歌手类'''

pass

vae = Singer()

vae.age = '32' # 句点法 赋值

vae.height = '180cm'

print(vae)

# <__main__.singer object at>

# 有一个内存地址,用于存放他的这些属性

print(vae.age)

# 32, 句点法,去引用

类属性VS实例属性:类不能访问我们的实例属性

print(Singer.age)

# AttributeError: type object 'Singer' has no attribute 'age'

二、初始化

1、类和函数

以下完成了类和实例:

class Singer:

pass

Vae = Singer()

Vae.age = 32

Eason = Singer()

Eason.age = 45

print(Vae.age) # 32

print(Eason.age) # 45

现在我们使用函数:

class Singer:

pass

Vae = Singer()

Vae.age = 32

Eason = Singer()

Eason.age = 45

def add_singer(s1, s2):

singer = Singer()

singer.age = s1.age + s2.age

return singer

hh = add_singer(Vae, Eason)

print(hh.age)

2、类和方法

class Cat():

'''这是一个猫类'''

def add_cat(cat):

print("{} {}".format(cat.color, cat.eat))

kitty = Cat()

kitty.color = "white"

kitty.eat = "food"

Cat.add_cat(kitty) #类下面方法的调用 white food

kitty.add_cat() #white food

总结:

1、实例能访问类属性,也能访问实例属性

2、类只能访问类属性

3、self简介

self参数传入的是你创建的对象

self可直接将对象带参数传入类中的方法,像这种在对象中封装数据,对类进行优化的方法叫做封装

class Cat:

'''这是一个猫类'''

def add_cat(self):

print("{} {}".format(self.color, self.eat))

kitty = Cat()

kitty.color = "white"

kitty.eat = "food"

Cat.add_cat(kitty) #类下面方法的调用 white food

kitty.add_cat() #white food

4、初始化(在类里面添加实例就是初始化)

init: 自动被调用,把实例下的属性放到类里面

class Cat:

'''这是一个猫类'''

def __init__(self, color, eat, age):

self.color = color

self.eat = eat

self.age = age

def add_cat(self):

print("{} {}".format(self.color, self.eat))

kitty = Cat("white", "food", 1)

print(kitty.color) #white

三、练习

class rectangl:

'''这是一个矩形类'''

def __init__(self, length, height):

self.length = length

self.height = height

def area(self):

area = self.length*self.height

return area

def perimeter(self):

perimeter = (self.length + self.height)*2

return perimeter

A = rectangl(5, 4)

print("矩形A的面积是:", A.area()) #矩形A的面积是: 20

print("矩形A的周长是:", A.perimeter()) #矩形A的周长是: 18

python类初始化返回实例_Python基础——类、实例及初始化相关推荐

  1. python根据年月日计算天数_Python基础练习实例4(年月日算天数)

    题目:输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以2018年3月1日为例,应该先把前两个月的加起来(按月分,用一个数组存储之前的天数),然后再加上5天即本年的第几天,特殊情况,闰年且输 ...

  2. python杨辉三角编程_Python基础练习实例49(打印杨辉三角)

    杨辉三角(也称帕斯卡三角),它是一个无限对称的数字金字塔,从顶部的单个1开始,下面一行中的每个数字都是上面两个数字的和. 题目:打印出杨辉三角形(要求打印出10行如下图). 分析: 把每一行看作一个列 ...

  3. python定义一个dog类 类属性有名字_python 基础 12 初识类,类方法,类属性

    python 基础 12 初识类,类方法,类属性 # 面向过程 : 想要一个结果 写代码 实现计算结果 # 面向对象开发 : 有哪些角色 角色的属性和技能 两个角色之间是如何交互的 # 复杂的 拥有开 ...

  4. python类和对象实例_python的类和实例化对象

    原博文 2018-12-07 16:50 − 一切皆对象,类也是对象,类来自于元类type,如果一个类没有声明自己的元类,默认它就是元类. 即类是元类的实例,通过type(类)会显示type,而实例来 ...

  5. python函数实例与类实例_python – 在类和实例上表现不同的函数

    好问题!您使用描述符可以轻松完成您所寻求的内容. Descriptors是实现描述符协议的Python对象,通常以__get __()开头. 它们主要存在于不同类中的类属性.在访问它们时,将调用它们的 ...

  6. python类和对象基础_Python(基础)---类和面向对象编程

    一.类的基本概念 1.1 什么叫类 python是一门高级语言,与汇编不同,它的语法规则更贴近于我们的现实生活. 而类就是对现实生活中实际事物的抽象,例如:汽车,人,动物等抽象概念,这些抽象出来的东西 ...

  7. python类继承实例_Python实现类继承实例

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,本文就举一例Python类继承的实例. 实例代码如下: #! /usr/bin/python # Filename: inherit ...

  8. python 类的知识点整理_Python基础知识点整理,看下你能答对几个

    python高薪就业(视频.学习路线.免费获取)​shimo.im 1.单行注释和多行注释 1. 单行注释 #. 2. 多行注释,前后三个单引号或双引号'''... '''; "" ...

  9. python中self做前缀_python 创建类和为什么类方法中self形参必不可少?

    我们观察到在类中定义方法时,都带有self形参,为何必须在方法中定义形参self呢? 因为Python调用方法创建类实例时,将自动传入实参self.每个与类相关联的方法调用都自动传递实参self,他是 ...

最新文章

  1. JDBC+Servlet+JSP整合开发之30-JDBC、Servlet、JSP的MVC
  2. LeetCode 662 二叉树最大宽度
  3. JS之字符串连接方法join
  4. java api项目配置统一的错误返回json提示
  5. android 自定义dialog 定时关闭,Android 快速实现自定义 Dialog
  6. DbNetSpell
  7. Http第三方接口实现/异步Http请求
  8. 一个gSOAP web服务可以用多线程技术来处理请求
  9. SREng 使用指南(一)SREng简介
  10. 网站账号中密码的加密方式
  11. 金仓数据库在 TPCE(dbt5,tpsE)测试框架方面的实践和突破
  12. php 显示时间动态效果,使用h5 canvas实现时钟的动态效果
  13. 批量计算图片的均值与标准差
  14. sin和cos的爱恋
  15. ardupilot GPS ublox协议学习
  16. Python tkinter之PhotoImage图片显示问题
  17. Intel® 64 and IA-32 Architectures Software Developer's Manual CHPTER 8 Multiple-processor management
  18. 2015-4-23 bav总结
  19. 二叉搜索树的插入,删除,和中序遍历
  20. zedgraph 两点之间值_数轴上两点距离公式(绝对值几何意义),中点公式

热门文章

  1. labelme_json_to_dataset不能转换关键点的问题
  2. 实习,内推,校招,社招的区别和联系
  3. 在centos7下安装云锁
  4. Audacity分析清音浊音爆破音的时域及频域特性
  5. 第一阶段冲刺 eighth day
  6. Briefings in bioinformatics2022 | 基于神经网络的分子性质预测通用优化策略
  7. vscode登陆中国版leetcode
  8. win10安装虚拟机Linux Centos7系统网络配置
  9. java 设置图片像素_java设置图片像素
  10. 人类跌落梦境显示无法连接服务器,人类跌落梦境手游网络连接失败进不去解决办法一览...