python类初始化返回实例_Python基础——类、实例及初始化
一、面向对象编程
我们最开始写代码是面向过程编程的,即:一步步按顺序去实现
后来我们学习了函数,把这些功能封装到函数里面,需要实现某个功能的时候直接调用就行,这样可以减少代码的重复性,这就是函数式编程
现在我们学习第三种编程方法:面向对象编程—— 一切事物皆为对象 ,面向对象编程是一种编程设计思想。面向对象程序设计作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。面向对象的语言支持的概念包括:类与对象、继承、多态。
二、类和实例
类是抽象出来的模板(共性),比如 歌手类
实例是根据我们的类创建出来的一个个具体的“对象,每个对象都有相同的方法,但各自的数据不同,例如:许嵩、陈奕迅、李荣浩
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基础——类、实例及初始化相关推荐
- python根据年月日计算天数_Python基础练习实例4(年月日算天数)
题目:输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以2018年3月1日为例,应该先把前两个月的加起来(按月分,用一个数组存储之前的天数),然后再加上5天即本年的第几天,特殊情况,闰年且输 ...
- python杨辉三角编程_Python基础练习实例49(打印杨辉三角)
杨辉三角(也称帕斯卡三角),它是一个无限对称的数字金字塔,从顶部的单个1开始,下面一行中的每个数字都是上面两个数字的和. 题目:打印出杨辉三角形(要求打印出10行如下图). 分析: 把每一行看作一个列 ...
- python定义一个dog类 类属性有名字_python 基础 12 初识类,类方法,类属性
python 基础 12 初识类,类方法,类属性 # 面向过程 : 想要一个结果 写代码 实现计算结果 # 面向对象开发 : 有哪些角色 角色的属性和技能 两个角色之间是如何交互的 # 复杂的 拥有开 ...
- python类和对象实例_python的类和实例化对象
原博文 2018-12-07 16:50 − 一切皆对象,类也是对象,类来自于元类type,如果一个类没有声明自己的元类,默认它就是元类. 即类是元类的实例,通过type(类)会显示type,而实例来 ...
- python函数实例与类实例_python – 在类和实例上表现不同的函数
好问题!您使用描述符可以轻松完成您所寻求的内容. Descriptors是实现描述符协议的Python对象,通常以__get __()开头. 它们主要存在于不同类中的类属性.在访问它们时,将调用它们的 ...
- python类和对象基础_Python(基础)---类和面向对象编程
一.类的基本概念 1.1 什么叫类 python是一门高级语言,与汇编不同,它的语法规则更贴近于我们的现实生活. 而类就是对现实生活中实际事物的抽象,例如:汽车,人,动物等抽象概念,这些抽象出来的东西 ...
- python类继承实例_Python实现类继承实例
Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,本文就举一例Python类继承的实例. 实例代码如下: #! /usr/bin/python # Filename: inherit ...
- python 类的知识点整理_Python基础知识点整理,看下你能答对几个
python高薪就业(视频.学习路线.免费获取)shimo.im 1.单行注释和多行注释 1. 单行注释 #. 2. 多行注释,前后三个单引号或双引号'''... '''; "" ...
- python中self做前缀_python 创建类和为什么类方法中self形参必不可少?
我们观察到在类中定义方法时,都带有self形参,为何必须在方法中定义形参self呢? 因为Python调用方法创建类实例时,将自动传入实参self.每个与类相关联的方法调用都自动传递实参self,他是 ...
最新文章
- JDBC+Servlet+JSP整合开发之30-JDBC、Servlet、JSP的MVC
- LeetCode 662 二叉树最大宽度
- JS之字符串连接方法join
- java api项目配置统一的错误返回json提示
- android 自定义dialog 定时关闭,Android 快速实现自定义 Dialog
- DbNetSpell
- Http第三方接口实现/异步Http请求
- 一个gSOAP web服务可以用多线程技术来处理请求
- SREng 使用指南(一)SREng简介
- 网站账号中密码的加密方式
- 金仓数据库在 TPCE(dbt5,tpsE)测试框架方面的实践和突破
- php 显示时间动态效果,使用h5 canvas实现时钟的动态效果
- 批量计算图片的均值与标准差
- sin和cos的爱恋
- ardupilot GPS ublox协议学习
- Python tkinter之PhotoImage图片显示问题
- Intel® 64 and IA-32 Architectures Software Developer's Manual CHPTER 8 Multiple-processor management
- 2015-4-23 bav总结
- 二叉搜索树的插入,删除,和中序遍历
- zedgraph 两点之间值_数轴上两点距离公式(绝对值几何意义),中点公式
热门文章
- labelme_json_to_dataset不能转换关键点的问题
- 实习,内推,校招,社招的区别和联系
- 在centos7下安装云锁
- Audacity分析清音浊音爆破音的时域及频域特性
- 第一阶段冲刺 eighth day
- Briefings in bioinformatics2022 | 基于神经网络的分子性质预测通用优化策略
- vscode登陆中国版leetcode
- win10安装虚拟机Linux Centos7系统网络配置
- java 设置图片像素_java设置图片像素
- 人类跌落梦境显示无法连接服务器,人类跌落梦境手游网络连接失败进不去解决办法一览...