我们在前面学习了解了面向过程编程,接下来我们一起来学习一下面向对象编程。其实不管是面向过程,还是面向对

象,说白了就是一种编程方式而已。既然是面向对象编程,顾名思义,此编程方式的落地需要使用 “类” 和 “对象” 来实

现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。

  基本概念:

  类就是一个模板,模板里可以包含多个函数,函数里实现一些功能

  对象则是根据模板创建的实例,通过实例对象可以执行类中的函数

  如何创建一个类:

  1、class是关键字,表示类

  2、创建对象,类名称后加括号即可

  如何使用类:

  一、实例化:

#创建了一个名为people的类
class people:
gender = "male" #共有的特征
def print_name(self):
print("print_name-----> %s"%self)
x = int(6) #int一个值,赋值给x
print(x) #打印输出x的值
obj = people() #people加括号会返回一个值,并赋值给obj,这就实例化
print(obj) #打印输出obj的值
-------------输出结果-------------------
6 #x的值
<__main__.people object at 0x00000000028C9C88> #得到的就是一个对象

  二、引用类的特征(类的变量)和技能(类的函数)

#创建了一个名为people的类
class people:
gender = "male"
def print_name(self):
print("print_name-----> %s"%self)
print(people.gender) #类名.变量名,打印这个类的共有特征,性别
print(people.print_name) #类名.函数名,打印这个函数的返回值
people.print_name("michael") #类名.函数名加括号调用函数并传了一个参数
-----------------------输出结果------------------------
male #共有特征是男
<function people.print_name at 0x00000000026DB950> #返回值的内存地址
print_name-----> michael #函数运行结果

  如何使用实例:

#创建了一个名为people的类
class people:
gender = "male"
def __init__(self,nickname):
self.nick = nickname
def print_name(self,age):
print("%s's age is %s"%(self.nick,age))
p1 = people("michael") #类名加括号里传参数调用会返回一个值,赋值给p1得到一个具体的对象
p2 = people("jack") #类名加括号里传参数调用会返回一个值,赋值给p2得到一个具体的对象
print(p1.nick) #打印对象p1的名字
print(p2.nick) #打印对象p2的名字
print(p1.gender) #打印所有对象共有的特征,性别
print(p2.gender) #打印所有对象共有的特征,性别
print(p1.print_name) #打印p1的绑定方法的返回值
print(people.print_name) #打印 类名.函数名 的返回值
p1.print_name(18) #self=p1就是p1自己本身的值传给位置参数self
people.print_name(p2,23) #这个结果同上是一样的,只是在位置参数那直接传的p1
-----------------------------输出结果---------------------------------------
michael #p1.nick的名字
jack #p2.nick的名字
male #共有特征,男
male #共有特征,男
<bound method people.print_name of <__main__.people object at 0x0000000002929E10>> #实例化对象的绑定方法的返回值的内存地址
<function people.print_name at 0x000000000292B9D8> #类名.函数名的返回值的内存地址
michael's age is 18 #绑定方法传参的执行结果
jack's age is 23 #类名.函数名 直接传参执行的结果

  总结:

  类:

  1、实例化;

  2、引用名字(类名.变量名,类名.函数名)。

  实例:

  引用名字(实例名.类的变量,实例名.绑定方法,实例名.实例自己的变量名)。

  其他:

  1、类对变量的:增、删、改、查。

#创建了一个名为people的类
class people:
gender = "male"
marital_status = "bachelordom"
def __init__(self,nickname):
self.nick = nickname
def print_name(self,age):
print("%s's age is %s"%(self.nick,age))
people.interest = "python" #类people中共有特征,增加爱好
print("共同爱好:",people.interest) #将结果输出打印
people.marital_status = "married" #经过不断的努力学习Python后,都成功脱单,修改婚姻状态
print("修改后的婚姻状况:",people.marital_status) #将结果输出打印
print("性别:",people.gender) #查看类people的共有特征,性别
del people.marital_status #删除婚姻状况变量名
print(people.marital_status) #查看删除结果,报错说明删除成功
---------------------------输出结果------------------------------------
共同爱好: python
修改后的婚姻状况: married
性别: male
Traceback (most recent call last):
File "F:/Michael/day26/类和对象.py", line 79, in <module>
print(people.marital_status) #查看删除结果,报错说明删除成功
AttributeError: type object 'people' has no attribute 'marital_status'

  2、实例化,对对象对应的变量的:增、删、改、查。

#创建了一个名为people的类
class people:
gender = "male"
marital_status = "bachelordom"
def __init__(self,nickname):
self.nick = nickname
def print_name(self,age):
print("%s's age is %s"%(self.nick,age))
p1 = people("michael") #类名加括号里传参数调用会返回一个值,赋值给p1得到一个具体的对象
p1.interest = "basketball" #为对象p1增加爱好,篮球
print("增加的爱好:",p1.interest) #结果输出打印
p1.marital_status = "married" #经过不断的努力学习Python后,都成功脱单,修改婚姻状态
print("修改后的婚姻状况:",p1.marital_status) #结果输出打印
print("查看p1的名字:",p1.nick) #查看p1的名字
del p1.marital_status #删除p1婚姻状况
print("原婚姻状态:",p1.marital_status) #查看删除结果,未修改原状态则删除成功
-----------------------------输出结果-------------------------------------
增加的爱好: basketball
修改后的婚姻状况: married
查看p1的名字: michael
原婚姻状态: bachelordom

  

Python基础之初识类和对象的更多相关文章

  1. Python基础-面向对象初识--类

    什么是类 具有相似功能和属性的一类实物 什么是对象 类的具体体现,具体到一个 面向对象的优势 1.类是一组相似功能的集合,使组织结构更加清晰和规范化 2.研究面向对象要有上帝的思维,用面向对象设计程序 ...

  2. Python初识类与对象

    Python初识类与对象 类与对象 世界观角度分析类与对象 类是一个抽象的概念,而对象是一个实体的存在,对象由类创造而出,每个对象之间互相独立互不影响,一个对象可以同时拥有多个类的方法,实例化就是通过 ...

  3. python基础——使用元类

    python基础——使用元类 type() 动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的. 比方说我们要定义一个Hello的class,就写一个hello. ...

  4. Python基础:新式类的属性访问

    一.概述 二.准备工作 1.讨论对象 2.名词解释 三.实例绑定的属性访问 1.获取属性 一般规则 参考源码 示例验证 2.设置属性 一般规则 参考源码 示例验证 3.删除属性 一般规则 参考源码 示 ...

  5. 二十三. Python基础(23)--经典类和新式类

    二十三. Python基础(23)--经典类和新式类 ●知识框架   ●接口类&抽象类的实现 # 接口类&抽象类的实现 #①抛出异常法 class Parent(object):    ...

  6. 第三章:Python高级编程-深入类和对象

    第三章:Python高级编程-深入类和对象 Python3高级核心技术97讲 笔记 3.1 鸭子类型和多态 """ 当看到一直鸟走起来像鸭子.游泳起来像鸭子.叫起来像鸭子 ...

  7. 《Java从入门到失业》第四章:类和对象(4.1):初识类和对象

    4类和对象 在第一章曾经简单介绍过,在面向对象的世界里,一切事物皆对象,当解决一个问题的时候,我们先会考虑这个问题会涉及到哪些事物,然后把事物抽象成类,当时还画了一张图如下: 从本章开始,我们一点一点 ...

  8. python基础-第七篇-7.1初识类和对象

    创建类和对象 刚开始我们接触得多的编程方式为面向过程编程,这种方式就是根据业务逻辑从上往下垒代码,后来又出现了函数式编程,就是为了提高代码的重用性,减轻程序猿的工作量--而今天我们即将学的 面向对象编 ...

  9. 零基础入门学习Python(36)--类和对象:给大家介绍对象

    知识点 Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前 ...

随机推荐

  1. shiro-5基于url的权限管理

    1.1 搭建环境 1.1.1 数据库 mysql5.1数据库中创建表:用户表.角色表.权限表(实质上是权限和资源的结合 ).用户角色表.角色权限表. 完成权限管理的数据模型创建. 1.1.2 开发环境 ...

  2. MySql cmd下的学习笔记 —— 有关视图的操作(algorithm)

    建立一张简单的查询视图,不用临时表,只用条件合并 在简单的查询中,建立临时表的开销比较大 这是可以指定algorithm选项为merge 在v2的视图中,并没有建立临时表 但在下列情况下,必须建立临时 ...

  3. 【VMware vSphere】ESXi系统开启SSH协议

    写在前面:           SSH为建立在应用层基础上的安全协议,是目前较为可靠,专为远程登录会话和其他网络服务提供安全性的协议.感兴趣的话,可以百度了解           在这里,我们需要将S ...

  4. shell脚本 统计一段程序运行时间【转】

    转自:https://bbs.csdn.net/topics/391943383#include <stdio.h> #include <stdlib.h> #include ...

  5. valgrind简介以及在ARM上交叉编译运行【转】

    转自:https://blog.csdn.net/dengcanjun6/article/details/54958359 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...

  6. 机器学习与AI相关的资料

    机器学习与AI相关的资料: 1. http://www.fast.ai/    基础学习 2.http://geek.ai100.com.cn/  中文 3.http://geek.ai100.com ...

  7. vc++高级班之多线程篇[7]---线程间的同步机制②

    //示例代码: CStringArray g_ArrString; UINT __cdecl ThreadProc(LPVOID lpParameter) {  int startIdx = (int ...

  8. mongodb管理与安全认证

    mongodb数据管理 数据的导出.数据导入数据导出 mongoexport [使用mongoexport -h查看参数] 数据导入 mongoimport [使用mongoimport -h查看参数 ...

  9. CodeForces 931C Laboratory Work 水题,构造

    *这种题好像不用写题解... 题意: 一个人要改动别人的实验记录,实验记录记录是一个集合 实验记录本身满足:$max(X)-min(X)<=2$ 改动结果要求: 1.新的集合平均值和之前的一样 ...

  10. FreeSWITCH voicemail

    功能描述:分机不存在时,进行语音留言. 步骤: 1.编译mod_voicemail 模块.默认是已经有编译 2.加载mod_voicemail模块: fs_cli  -->  reload mo ...