python类、对象

学习完本篇,你将会深入掌握

  • 什么是类,对象
  • 了解类和对象之间的关系
  • 能独立创建一个People(人类),属性有姓名、性别、年龄。提供一个有参的构造方法,编写一个show方法,输出姓名、性别和年龄。

什么是类

  • 对象是现实世界事物的模型,类(class)就是创建这些模型的模板。类定义了对象需要描述的属性、具备的行为。可以把类看作创建对象的蓝图,从这个蓝图可以创建任意数量的对象。
  • 在程序中,类实际上就是数据类型。为了模拟真实世界更好的解决问题,往往需要创建解决问题所必须的数据类型。
  • 类是对客观世界的事物进行抽象思维活动后得到的“抽象数据类型”,而对象则是类的实例

类的定义

  1. 语法:
  2. class classname(object):
  3. // 声明成员属性
  4. // 声明成员方法
  5. 实例:
  6. class people:
  7. name = ‘’ #定义一个属性
  8. #定义一个方法
  9. def set_name(self,str):
  10. self.name = str
  11. #定义另一个方法
  12. def print_name(self):
  13. print self.name

对象

什么是对象

  • 定义一个对象可以是人们要进行研究的任何事物,不仅能代表具体的实体,还可以表示抽象的规则、计划或事件。在面向对象程序设计中,把要处理的事物抽象成对象。
  • 一个对象可以被认为是一个把数据(属性)和方法(行为)封装在一起的实体,其中对象的属性通过数据反映了对象当前的状态,对象的行为通过方法实现对象能够进行的操作。
  • 对象的两种成员

    1.成员属性

    2.成员方法

对象的定义

  1. #根据前面定义的people类,定义如下两个对象
  2. tom = people()
  3. susun = people()
  • 计算机按照类中的成员变量和成员方法的定义,为当前对象相应的成员变量及成员方法分配内存空间。
  • 每个对象都有自己独立的一片内存空间

类的结构-属性

  1. 格式:
  2. self.变量名 = value
  3. 也可以
  4. 变量名 = value;#这种方式放在方法(也称函数)外
  • 属性又称为实例变量,可以在类函数定义也可以在函数外定义。
  • 属性的作用域最小局限在本类中
  • 如果想定义一个属性不被外部访问需要在变量前加”__”

类的结构-方法

  1. 方法定义格式:
  2. def 方法名(self,参数列表):
  3. ……
  4. 返回值
  • python中参数有值传递,也有引用
  • 当没有返回值是,python默认返回值为None
  • 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

类的结构-构造函数

  1. 构造定义格式:
  2. def __init__(self,参数):
  3. ……
  • 构造函数系统默认调用的方法
  • 在一个对象的生命周期中,构造器只用一次,用于创建对象,系统会自动调用,不允许手工调用。
  • 如果一个类没有提供函数,系统为默认提供一个无参的函数。
  • self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。

python类、对象的更多相关文章

  1. Python类对象

    python类对象 python类对象支持两种操作:属性引用和实例化. 属性引用 使用 Python 中所有属性引用所使用的标准语法: obj.name. 有效的属性名称是类对象被创建时存在于类命名空 ...

  2. python—类对象和实例对象的区别

    最近在对RF的通讯层的模块进行封装,需要将之前放在类似main里面的一个方法,如下所示:这段代码是开发提供,用于接口测试,模拟底层通讯,具体的通讯是在dll内,python这边只是做了个封装让RF进行 ...

  3. Python 类对象去重

    注:set 对类对象去重,在于重写__eq__方法和__hash__方法,如果没有重写__hash__会导致People类对象不是可hash的 #!/usr/bin/env python # -*- ...

  4. python类对象属性查找原理

    class Foo(object): def __init__(self): # 这是一个对象属性 self.obj_pro = 12 # 这是一类属性 c_pro = 11 # 这是一个静态方法 @ ...

  5. python 类对象和实例对象动态添加方法

    class Person(): def __init__(self, name): self.name = name def print_name(self): print(self.name) p ...

  6. Python的高级特性8:你真的了解类,对象,实例,方法吗

    Python的高级特性1-7系列是本人从Python2过渡3时写下的一些个人见解(不敢说一定对),接下来的系列主要会以类级为主. 类,对象,实例,方法是几个面向对象的几个基本概念,其实我觉得很多人并不 ...

  7. Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理

    上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象 ...

  8. Python类,域,方法,对象,继承

    类和对象: 是面向对象编程的两个主要方面,类创建一个新类型,而对象这个类的实例.. 域: 属于一个对象或类的变量被称为域.域有两种类型: 属于每个实例(类的对象)或属于类本身.它们分别被称为实例变量和 ...

  9. python面对对象编程------4:类基本的特殊方法__str__,__repr__,__hash__,__new__,__bool__,6大比较方法

    一:string相关:__str__(),__repr__(),__format__() str方法更面向人类阅读,print()使用的就是str repr方法更面对python,目标是希望生成一个放 ...

  10. python中对象、类型和元类之间的关系

    在python中对象.类型和元类构成了一个微妙的世界. 他们有在这个世界里和平共处,相辅相成.它们遵循着几条亘古不变的定律: 1.python中无处不对象 2.所有对象都有三种特性:id.类型.值 3 ...

随机推荐

  1. Git-02-版本回退

    环境准备 1 修改readme.txt内容 Git is a distributed version control system. Git is free software. 2 git statu ...

  2. 【笔记】求数据前n个主成分以及对高维数据映射为低维数据

    求数据前n个主成分并进行高维数据映射为低维数据的操作 求数据前n个主成分 先前的将多个样本映射到一个轴上以求使其降维的操作,其中的样本点本身是二维的样本点,将其映射到新的轴上以后,还不是一维的数据,对 ...

  3. Android消息机制1-Handler(Java层)

    一.概述 在整个Android的源码世界里,有两大利剑,其一是Binder IPC机制,,另一个便是消息机制(由Handler/Looper/MessageQueue等构成的). Android有大量 ...

  4. kali2020更换JDK&&安装burpsuite pro

    写在前面 之前因为安装maven把JDK换成了1.8.0_261,尝试诸多方法依然打不开自带的burp,正好在做CTF做不出来 QAQ,一气之下打算安个破解版burp. 安装 0x00 更换JDK 使 ...

  5. 直流电机、减速器、编码器与TB6612FNG知识整理

    之前把MPU6050的相关知识了解了一下,可以做到测量欧拉角,在平衡小车的开发中需要测量小车的倾角来调整小车姿态.接下来该学习小车的电机驱动部分了,这里整理一下直流电机.减速器.编码器以及TB6612 ...

  6. ffmpeg第6篇:滤镜语法

    前言 哈哈,回来继续填坑了,前段时间较忙没时间写,现在继续~ 简介 滤镜是ffmpeg的一个很强大的功能,它支持许多有用的视频处理功能,常见的滤镜如:缩放.旋转.水印.裁剪等 一个比较经典的滤镜使用方 ...

  7. Raspberry Pi 中安装Mono

    摘自:http://www.phodal.com/blog/user-csharp-develop-raspberry-pi-application/ Raspberry Pi C# Mono Lin ...

  8. 如何在github上fork以及同步原作者代码

    参考网址:https://blog.csdn.net/llll2020/article/details/86140488 转  GitHub上fork别人打代码后如何保持和原作者同步的更新 </ ...

  9. C# KeyValuePair<TKey,TValue> 与 Dictionary<TKey,TValue> 区别

    KeyValuePair<TKey,TValue> 可以设置.查询的一对键值 是struct Dictionary<TKey,TValue> 可以设置.查询的多对键值的集合 总 ...

  10. CentOS 6.x 系统中安装原生 Hadoop 2

    2020年整理博客发现原文地址已经失效,推荐学习地址厦门大学数据库实验室 本教程适合于在 CentOS 6.x 系统中安装原生 Hadoop 2,适用于Hadoop 2.7.1, Hadoop 2.6 ...