python面向对象编程的语言_怎么使用python面向对象编程

怎么使用python面向对象编程

发布时间:2020-08-25 13:42:19

来源:亿速云

阅读:89

作者:Leah

本篇文章给大家分享的是有关怎么使用python面向对象编程,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

类是面向对象程序设计的一部分。面向对象程序设计或者简称为 OOP 致力于创建可重用代码块称之为类。当你想在你的程序中使用类时,你会从类中创建一个对象,这也是面向对象一词的由来。Python 并不总是面向对象的,但是你会在你的项目中用到对象。为了理解类,你需要理解面向对象的一些基础术语。

常用术语

class:类。类是代码块的主体,其中定义了建立的模型的属性和行为。这个模型可以来自于真实世界,也可以是虚拟游戏等。

attribute:属性。是一系列信息的集合。在类中,一个属性通常是一个变量。

behavior:行为。行为是定义在类中,组成方法的部分。也即是定义在类中函数的一部分。

method:方法。类中的函数,由 behavior 组成。

object:对象。对象是类的实例。一个对象中包含所有类中属性的值。你可以为一个类创建任意数量的对象。

近距离观察 Rocket 类

我们已经了解到一些类的基本术语,让我们回头再分析一下上节提到的 Rocket 类。

__init__() 方法

定义一个初始代码块,如下所示:class Rocket():

# Rocket simulates a rocket ship for a game,

#  or a physics simulation.

def __init__(self):

# Each rocket has an (x,y) position.

self.x = 0

self.y = 0

第一行展示了类是如何创建的。关键字 class 告诉 Python 准备定义一个类。类名的命名规则和变量的相同,但是 Python 中有一个约定好的规则,类名必须是驼峰式的。也即每个单词的开头必须是大写的,不允许下划线的出现。类名后紧跟一对圆括号,目前为止圆括号里都是空的,接下来的学习中,其中可能会包含一个类。这个类是新类基于的类。

前后都有两个下划线的函数是内置在 Python 中的有特殊用途的函数。__init__() 函数就是一个特殊的函数。当创建一个类的对象时,它会自动执行。我们可以称之为初始化函数,在对象使用之前初始化一些必要的属性。在这个例子中,__init__() 函数初始化了 x 和 y 属性。

关键字 self 可能会有些难以理解。单词 "self" 指向当前的对象。当你创建一个类时,它可以访问到类中的任意指定属性。基本上,类中所有的函数都需要 self 对象作为第一个参数,因此它们就可以访问类中的属性。

现在,让我们看看类中的方法吧!

一个简单的方法

下述代码在 Rocket 类中定义了一个方法。class Rocket():

# Rocket simulates a rocket ship for a game,

#  or a physics simulation.

def __init__(self):

# Each rocket has an (x,y) position.

self.x = 0

self.y = 0

def move_up(self):

# Increment the y-position of the rocket.

self.y += 1

方法就是类中的函数。因此你可以在方法中做任何函数能做的事。

默认情况下,每个函数都需要接受一个参数:self 。它是对调用这个方法的对象的引用。self 参数能让你访问到调用对象的属性。在这个例子中,self 用来访问 Rocket 对象的 y 属性。这个方法被调用一次,对象的 y 属性就增加1。为了更近一步了解方法的运行过程,仔细阅读下述代码,并观察它们的输出。class Rocket():

# Rocket simulates a rocket ship for a game,

#  or a physics simulation.

def __init__(self):

# Each rocket has an (x,y) position.

self.x = 0

self.y = 0

def move_up(self):

# Increment the y-position of the rocket.

self.y += 1

# Create a Rocket object, and have it start to move up.

my_rocket = Rocket()

print("Rocket altitude:", my_rocket.y)

my_rocket.move_up()

print("Rocket altitude:", my_rocket.y)

创建多个对象

面向对象编程一个重要目标是创建可重用代码。一旦你写好了类,就能创建任意数量的对象。通常,类被放进一个单独的文件中,在需要的时候导入程序中。因此你可以创建一个类库,在不同的程序中重复使用这些类。

在一个类上创建多个对象,示例如下:class  Rocket():

# Rocket simulates a rocket ship for a game,# Rocket

#  or a physics simulation.

def __init__(self):

# Each rocket has an (x,y) position.

self.x = 0

self.y = 0

def move_up(self):

# Increment the y-position of the rocket.

self.y += 1

# Create a fleet of 5 rockets, and store them in a list.

my_rockets = []

for x in range(0,5):

new_rocket = Rocket()

my_rockets.append(new_rocket)

# Show that each rocket is a separate object.

for rocket in my_rockets:

print(rocket)

以上就是怎么使用python面向对象编程,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试计划时要记住什么

测试计划是软件测试生命周期的早期阶段之一。良好的计划是平稳执行阶段的关键,而糟糕的计划可能导致不必要的时间消耗。测试用例编写,资源分配等是作为测试计划的一部分执行的一些活动。 在规划过程中应注意并注意一些关键点,以避免将冗余问题…

ssm框架搭建连接mysql_从零开始搭建SSM框架(Spring + Spring MVC + Mybatis)

最近在回顾和总结一些技术,想到了把之前比较火的 SSM 框架重新搭建出来,作为一个小结,同时也希望本文章写出来能对大家有一些帮助和启发,因本人水平有限,难免可能会有一些不对之处,欢迎各位大神拍砖指教&am…

基于TFS实践敏捷-可视化管理

TFS是基于微软平台一套不错的系统,支持源码管理运行调试持续集成自动化测试Bug管理代码评审任务项管理文档管理沟通管理。 基于TFS 2015实践看板管理,让团队的数据可视化,让大家更多的关心产品、关注团队的努力,增强沟通、及时反映…

linux查看java版本_linux 查看java版本

inux查看java jdk安装路径和设置环境变量windows:set java_home:查看JDK安装路径java -version:查看JDK版本linux:whereis javawhich java (java执行路径)**echo $JAVA_HOME****echo $PATH**二:下面是配置linux的环境变量:(记得so…

[转载]基于TFS实践敏捷-修复Bug和执行代码评审

本主题阐释了这些功能,以继续这一关注虚拟敏捷团队成员的一天的教程。 Peter 忙于编写一些代码以完成积压工作 (backlog) 项任务。但是,他的同事发现了一个阻碍他们工作的 Bug,他想立即修复此 Bug。 他暂停了手中的工作并修复此 Bug。 他请求…

lzw压缩 java_java实现的LZW 压缩算法源码 | 学步园

导读:/** LZW.java** Created on 01 Dec 2005** Implementation of LZW compression/decompression algorithm*/import java.io.* ;/**** author Moshe Fresko* courseAlgorithmic Programming 1* exercise3*/public class LZW implements Compression{boolean stop…

单元测试入门

https://docs.microsoft.com/zh-cn/visualstudio/test/getting-started-with-unit-testing?viewvs-2019 使用 Visual Studio 定义和运行单元测试,使代码保持正常运行、确保代码覆盖率并在客户之前找到错误和缺陷。 经常运行单元测试,确保代码正常运行。…

java中乐观锁_Java中乐观锁与悲观锁的实现

锁(locking)业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个cut-off时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生…

.net开源框架简介和通用技术选型建议

.net体系 .net core .net 类库 asp.net mvc asp.net webapi asp.net core EF 跨平台和运行时解决方案(解决方案) Katana:微软基于OWIN规范实现的非IIS寄宿ASP.NET和MVC等。 MONO.NET:跨平台的.NET运行环境,让.NE…

JAVA 2048源码_java实现2048游戏源代码

本文实例为大家分享了java实现2048游戏源代码,供大家参考,具体内容如下一.主要功能:1、游戏初始化:新建游戏44的16宫格画布,随机格子上生成2或者4两个数字2、格子的移动:先判断能否移动,移动后判…

.Net开源的跨平台爬虫框架 DotnetSpider

项目详细介绍 DotnetSpider是开源的.NET跨平台数据采集爬虫框架。需要 Scheduler,Downloader ,Processor,Pipeline 四部分。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39…

开源干货!.NET Core + Vue.js通用动态权限(RBAC)管理系统框架[DncZeus]开源

DncZeus 前言 关于 DncZeus DncZeus Dnc Zeus "Dnc"--.Net Core 的缩写; "Zeus"--中文译为宙斯,是古希腊神话中的众神之王,奥林匹斯十二主神之首,统治宇宙万物的至高无上的主神(在古希腊神…

浏览器使用java_java如何调用本地的浏览器

1.调用本地的浏览器 import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;public class UseBrowser {public static void main(String[] args) {URL url null;try {url new URL("http://www.baidu.com");} catch (MalformedURL…

java input函数怎么用_Java函数习惯用法详解

在Java编程中,有些知识 并不能仅通过语言规范或者标准API文档就能学到的。在本文中,我会尽量收集一些最常用的习惯用法,特别是很难猜到的用法。我把本文的所有代码都放在公共场所里。你可以根据自己的喜好去复制和修改任意的代码片段&#xf…

十大开源的.NET用户界面框架 让GUI设计不再犯难

选择一款合适的GUI框架是.NET开发中比较重要但又很棘手的问题,因为用户界面相当于一款应用的"门面",直接面向用户。好的UI更能吸引用户,有时甚至成为决定一款应用成败的关键。下面小编整理出十大应用最广泛.NET开源用户界面框架&am…

mysql一对一级联_MySQL 表的一对一、一对多、多对多问题

将实体与实体的关系,反应到最终数据库表的设计上,将关系分为三种:一对一,一对多(多对一)和多对多,所有的关系都是表与表之间的关系;一对一一对一:一张表的一条记录只能与另外一条记录进行对应,反…

.Net开源框架列表

API 框架 NancyFx:轻量、用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono 平台。官网ASP.NET WebAPI:快捷创建 HTTP 服务的框架,可以广泛用于多种不同的客户端,包括浏览器…

java的基础类型和字节大小_java的基础类型和字节大小

学习c语言的时候,这些个东西起码还是很明确的,因为上课的时候,老师经常问,现在时间久了,见的语言多了,也就有点乱了,也没怎么在意过。(武藏) 既然你诚心诚意的发问了,(小次郎) 我…

python flv转mp4_ffmpeg将多个flv文件合成为mp4(python版)

需求直播生成的flv片段需要做个归档,把指定的文件夹中的flv合并成一个mp4,简单的转码合并操作直接用命令行调用来实现。注意事项flv文件直接合并生成mp4的话只有第一个flv的内容才能播放,需要先转换成ts再合成mp4使用的第三方库ffmpy&#xf…

多租户技术

本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。 多租户技术(英语:multi-tenancy technology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件&…