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

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

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

  基本概念:

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

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

  如何创建一个类:

  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. 代码管理工具Git的安装及使用

    一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...

  2. mysql 8.0 ~ 索引优化

    一 简介:今天来聊天mysql8.0关于索引二 增强1 支持隐藏索引,这个可以用来测试创建的索引是否具有优化作用   创建 alter table t1 alter index u1 invisibl ...

  3. Django中的信号基础知识

    Django中提供了“信号调度”,用于在框架执行操作时解耦.通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者. 1.Django内置信号 1 2 3 4 5 6 7 8 9 10 ...

  4. 【Udacity并行计算课程笔记】- Lesson 4 Fundamental GPU Algorithms (Applications of Sort and Scan)

    I. Scan应用--Compact 在介绍这节之前,首先给定一个情景方便理解,就是因为某种原因我们需要从扑克牌中选出方块的牌. 更formal一点的说法如下,输入是 \(s_0,s_1,...\), ...

  5. pythonのpygame初体验

    import pygame import sys from pygame.locals import * #初始化pygame pygame.init() size = width,height=60 ...

  6. Windows中Anaconda,Tensorflow 和 Pycharm的安装和配置

    Anaconda完全入门指南 https://www.jianshu.com/p/eaee1fadc1e9                 [安装不要按此条链接进行] Windows中 Anacond ...

  7. MD5 与 SHA 在 Delphi 中函数实现,加密密码

    MD5 与 SHA 在 Delphi 中函数实现. 为了加密密码,必须使用一种算法,查询资料,比较好的方法是使用:MD5等算法,参考:Delphi XE8 支持MD5 第一种方式是:引用 System ...

  8. jQuery插件开发jQuery.extend(object)和jQuery.fn.extend()

    jQuery插件开发 知识1:用JQuery写插件时,最核心的方法有如下两个: $.extend(object) 可以理解为JQuery 添加一个静态方法. $.fn.extend(object) 可 ...

  9. Web.config设置system.webServer

    一般情况在iis部署web网站都非常顺利,但是遇到复杂环境,或者被配置过又正在使用的时候,就束手无策了, 因为对IIS和Web.config不熟悉,不知其中要害,导致浪费一天甚至更久的时间去处理一个可 ...

  10. 开源录屏工具 Best Screen Recording Open Source Software For Windows 2017

    OBS Studio OBS (Open Broadcaster Software) - Free and open source software for live streaming and sc ...