python类、对象
python类、对象
学习完本篇,你将会深入掌握
- 什么是类,对象
- 了解类和对象之间的关系
- 能独立创建一个People(人类),属性有姓名、性别、年龄。提供一个有参的构造方法,编写一个show方法,输出姓名、性别和年龄。
类
什么是类
- 对象是现实世界事物的模型,类(class)就是创建这些模型的模板。类定义了对象需要描述的属性、具备的行为。可以把类看作创建对象的蓝图,从这个蓝图可以创建任意数量的对象。
- 在程序中,类实际上就是数据类型。为了模拟真实世界更好的解决问题,往往需要创建解决问题所必须的数据类型。
- 类是对客观世界的事物进行抽象思维活动后得到的“抽象数据类型”,而对象则是类的实例
类的定义
语法:
class classname(object):
// 声明成员属性
// 声明成员方法
实例:
class people:
name = ‘’ #定义一个属性
#定义一个方法
def set_name(self,str):
self.name = str
#定义另一个方法
def print_name(self):
print self.name
对象
什么是对象
- 定义一个对象可以是人们要进行研究的任何事物,不仅能代表具体的实体,还可以表示抽象的规则、计划或事件。在面向对象程序设计中,把要处理的事物抽象成对象。
- 一个对象可以被认为是一个把数据(属性)和方法(行为)封装在一起的实体,其中对象的属性通过数据反映了对象当前的状态,对象的行为通过方法实现对象能够进行的操作。
- 对象的两种成员
1.成员属性
2.成员方法
对象的定义
#根据前面定义的people类,定义如下两个对象
tom = people()
susun = people()
- 计算机按照类中的成员变量和成员方法的定义,为当前对象相应的成员变量及成员方法分配内存空间。
- 每个对象都有自己独立的一片内存空间
类的结构-属性
格式:
self.变量名 = value
也可以
变量名 = value;#这种方式放在方法(也称函数)外
- 属性又称为实例变量,可以在类函数定义也可以在函数外定义。
- 属性的作用域最小局限在本类中
- 如果想定义一个属性不被外部访问需要在变量前加”__”
类的结构-方法
方法定义格式:
def 方法名(self,参数列表):
……
返回值
- python中参数有值传递,也有引用
- 当没有返回值是,python默认返回值为None
- 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。
类的结构-构造函数
构造定义格式:
def __init__(self,参数):
……
- 构造函数系统默认调用的方法
- 在一个对象的生命周期中,构造器只用一次,用于创建对象,系统会自动调用,不允许手工调用。
- 如果一个类没有提供函数,系统为默认提供一个无参的函数。
- self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。
python类、对象的更多相关文章
- Python类对象
python类对象 python类对象支持两种操作:属性引用和实例化. 属性引用 使用 Python 中所有属性引用所使用的标准语法: obj.name. 有效的属性名称是类对象被创建时存在于类命名空 ...
- python—类对象和实例对象的区别
最近在对RF的通讯层的模块进行封装,需要将之前放在类似main里面的一个方法,如下所示:这段代码是开发提供,用于接口测试,模拟底层通讯,具体的通讯是在dll内,python这边只是做了个封装让RF进行 ...
- Python 类对象去重
注:set 对类对象去重,在于重写__eq__方法和__hash__方法,如果没有重写__hash__会导致People类对象不是可hash的 #!/usr/bin/env python # -*- ...
- python类对象属性查找原理
class Foo(object): def __init__(self): # 这是一个对象属性 self.obj_pro = 12 # 这是一类属性 c_pro = 11 # 这是一个静态方法 @ ...
- python 类对象和实例对象动态添加方法
class Person(): def __init__(self, name): self.name = name def print_name(self): print(self.name) p ...
- Python的高级特性8:你真的了解类,对象,实例,方法吗
Python的高级特性1-7系列是本人从Python2过渡3时写下的一些个人见解(不敢说一定对),接下来的系列主要会以类级为主. 类,对象,实例,方法是几个面向对象的几个基本概念,其实我觉得很多人并不 ...
- Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理
上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象 ...
- Python类,域,方法,对象,继承
类和对象: 是面向对象编程的两个主要方面,类创建一个新类型,而对象这个类的实例.. 域: 属于一个对象或类的变量被称为域.域有两种类型: 属于每个实例(类的对象)或属于类本身.它们分别被称为实例变量和 ...
- python面对对象编程------4:类基本的特殊方法__str__,__repr__,__hash__,__new__,__bool__,6大比较方法
一:string相关:__str__(),__repr__(),__format__() str方法更面向人类阅读,print()使用的就是str repr方法更面对python,目标是希望生成一个放 ...
- python中对象、类型和元类之间的关系
在python中对象.类型和元类构成了一个微妙的世界. 他们有在这个世界里和平共处,相辅相成.它们遵循着几条亘古不变的定律: 1.python中无处不对象 2.所有对象都有三种特性:id.类型.值 3 ...
随机推荐
- setsockopt中参数之SO_REUSEADDR的意义
1.setsockopt中参数之SO_REUSEADDR的意义 1.一般来说,一个端口释放后会等待两分钟之后才能再被使用,SO_REUSEADDR是让端口释放后立即就可以被再次使用. SO_REUSE ...
- git连接远程GitHub仓库详细总结 for HTTPS协议
简单唠叨几句哈.之前工作的时候,由于是在大厂,代码提交.版本管理都是多人协作的,所以公司当时用的git + gerrit来实现代码管理的.当时入职时并不懂git的使用,虽然有大神写好配置git的文档, ...
- 记客户端出现Connect reset问题排查。
客户访问我们地址出现Connect reset. 网上查询说是服务端关闭,客户端还在读,就会出现Connect reset. 我们就排查为什么服务端会关闭. 网络的同事说收到了客户端的信息,但是被服务 ...
- Alibaba-技术专区-RocketMQ 延迟消息实现原理和源码分析
痛点背景 业务场景 假设有这么一个需求,用户下单后如果30分钟未支付,则该订单需要被关闭.你会怎么做? 之前方案 最简单的做法,可以服务端启动个定时器,隔个几秒扫描数据库中待支付的订单,如果(当前时间 ...
- Docker与k8s的恩怨情仇(八)——蓦然回首总览Kubernetes
在系统介绍了如何实际部署一个K8S项目后,作为本系列文章的最后一篇,我们一起来看看Kubernetes集群内容总览,再对一些更深层次的功能进行总结. Kubernetes总览 下图是一个k8s的总览结 ...
- SWAP的罪与罚&&NUMA的取舍
说个案例:一台Apache服务器,由于其MaxClients参数设置过大,并且恰好又碰到访问量激增,结果内存被耗光,从而引发SWAP,进而负载攀升,最终导致宕机. 正所谓:SWAP,性能之大事,死生之 ...
- 【工作篇】再次熟悉 SpringMVC 参数绑定
前言 主要现在项目中使用的参数绑定五花八门的,搞得很头大,例如有些用字符串接收日期,用字符串接受数组等等,完全没有利用好 SpringMVC 的优势,这里自己也总结一下,免得到时又要百度谷歌查找. 以 ...
- JavaWeb学习笔记(四)
本文内容 1. 会话技术 1. Cookie 2. Session 2. JSP:入门学习 会话技术 1. 会话:一次会话中包含多次请求和响应. * 一次会话:浏览器第一次给服务器资源发送请求,会话建 ...
- 【转】新说Mysql事务隔离级别
作者:孤独烟 转自:https://www.cnblogs.com/rjzheng/p/9955395.html 引言 大家在面试中一定碰到过 说说事务的隔离级别吧? 老实说,事务隔离级别这个问题,无 ...
- 关于Java集合框架的总结
Java集合框架(都实现了Cloneable和Serializable接口)支持以下两个类型的容器: 一种是为了存储一个元素集合,简称集合(collection). 另一种是为了存储键/值对,称为图( ...