python定义一个人类_Python类的定义、继承及类对象使用方法简明教程

Python编程中类的概念可以比作是某种类型集合的描述,如“人类”可以被看作一个类,然后用人类这个类定义出每个具体的人——你、我、他等作为其对象。类还拥有属性和功能,属性即类本身的一些特性,如人类有名字、身高和体重等属性,而具体值则会根据每个人的不同;功能则是类所能实现的行为,如人类拥有吃饭、走路和睡觉等功能。具体的形式如下:

# 例:类的概念

class 人类:

名字 = '未命名' # 成员变量

def 说话(内容): # 成员函数

print 内容 # 成员变量赋初始值

某人 = 人类() # 定义一个人类对象某人

某人.名字 = "路人甲"

某人.说话 ('大家好') # 路人甲说话

>>> 大家好! # 输出

Python中定义和使用类的形式为:class 类名[(父类名)]:[成员函数及成员变量],类名为这个类的名称,而父类名为可选,但定义父类名后,子类则拥有父类的相应属性和方法。在用类定义成对象时,会先调用__init__构造函数,以初始化对象的各属性,类的各属性(成员变量)均可以在构造函数中定义,定义时只要加上对象指针就好了。而在对象销毁时,则会调用__del__析构函数,定义类的成员函数时,必须默认一个变量(类似于C++中的this指针)代表类定义的对象本身,这个变量的名称可自行定义,下面例子将使用self变量表示类对象变量。

# 例:类定义及使用

class CAnimal:

name = 'unname' # 成员变量

def __init__(self,voice='hello'): # 重载构造函数

self.voice = voice # 创建成员变量并赋初始值

def __del__(self): # 重载析构函数

pass # 空操作

def Say(self):

print self.voice

t = CAnimal() # 定义动物对象t

t.Say() # t说话

>> hello # 输出

dog = CAnimal('wow') # 定义动物对象dog

dog.Say() # dog说话

>> wow # 输出

Python编程中类可以承继父类属性,形式为class 类名(父类),子类可以继承父类的所有方法和属性,也可以重载父类的成员函数及属性,须注意的是子类成员函数若重载父类(即名字相同),则会使用子类成员函数

# 例:类的继承

class CAnimal:

def __init__(self,voice='hello'): # voice初始化默认为hello

self.voice = voice

def Say(self):

print self.voice

def Run(self):

pass # 空操作语句(不做任何操作)

class CDog(CAnimal): # 继承类CAnimal

def SetVoice(self,voice): # 子类增加函数SetVoice

self.voice = voice

def Run(self,voice): # 子类重载函数Run

print 'Running'

bobo = CDog()

bobo.SetVoice('My Name is BoBo!') # 设置child.data为hello

bobo.Say()

bobo.Run()

>> My Name is BoBo!

>> Running

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

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

相关文章

android 反色 java_Android小米,魅族6.0状态栏不能反色解决方法

Android6.0及以上if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {Window window getWindow();window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);window.setStatusBarColor(getResources().getColor(android.R.color.white));window.…

mysql delete语句_MySQL ------ 触发器(TRIGGER)(二十七)

MySQL 语句在需要时被执行,存储过程也是,但是你要是想要某条(或某些语句)在事件发生时自动执行,该怎么办触发器由此而来触发器:某个表发生更改时自动处理。触发器是MySQL响应delete,insert&…

aws mysql价格_mysql – AWS RDS“转出”成本有多贵?

我在AWS上托管了一个社交网络网站.我是否会因RDS的“转移成本”而被收取费用(因为RDS将通过AWS连接到EC2)?这是否意味着我只需支付EC2’转账费用’?与“图像”带宽相比,“数据库”带宽有多贵?真的很感激任何输入.谢谢.解决方法:根据AWS文档,从…

python变量定义大全_详解python变量与数据类型

这篇文章我们学习 Python 变量与数据类型变量变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问。在 Python 中 变量命名规定,必须是大小写英文,数字和 下划线(_)的组合,并且不能…

java 数据库改操作_数据库的插入、修改、删除操作(java实现)

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JDBCTest {// 定义数据库访问参数String url "jdbc:sqlserver://localhost:1433; DatabaseNamelihongchao&…

python3安装pywin32_Python3 pywin32模块安装的详细步骤

python新手一枚,操作系统Win10 64 bit,Python版本,3.7因为某个脚本需要用到win32con 和win32api模块,run -- cmd ,使用easy_install pywin32 命令安装,提示错误,搜不到,网上搜了下教程&#x…

创建时间指定日期 java,Java避坑之如何创建指定时间Date对象

在翻看自己以前写的惨不忍睹的代码时,发现了自己曾经写的一个跟Date有关的坑。Date date new Date(2020, 1, 1);System.out.println(date);我的目的是想创建一个2020年1月1日的时间对象date,但是我们创建的date真的就代表2020年1月1日吗?错&…

pagerank数据集_从数据结构到算法:图网络方法初探

机器之心原创作者:朱梓豪编辑:Qing Lin如果说 2019 年机器学习领域什么方向最火,那么必然有图神经网络的一席之地。其实早在很多年前,图神经网络就以图嵌入、图表示学习、网络嵌入等别名呈现出来,其实所有的这些方法本…

php curl上传文件返回false,php curl上传文件$_FILES为空的问题

PHP 5.0~5.6 各版本兼容的cURL文件上传最近做的一个需求,使用PHP cURL上传文件。踩坑若干,整理如下。不同版本PHP之间cURL的区别PHP的cURL支持通过给CURL_POSTFIELDS传递关联数组(而不是字符串)来生成multipart/form-data的POST请求。传统上,…

python判断几个数最大最小_python 找出list中最大或者最小几个数的索引方法

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

netty 客户端断开 异常处理_netty案例,netty4.1基础入门篇八《NettyClient半包粘包处理》发数据方式》...

小傅哥 | https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获。专注于原创专题案例编写,目前已完成的专题有;Netty4.x实战专题案例、用Java实现JVM、基于JavaAgent的全链路监控、手写RPC框架、架构设计专题案例、源码分析等。你…

Java Windows注销用户,中止Windows从Java注销

EDIT2对于那些跟随讨论的人,我留下了我的第一个答案,但似乎他们没有工作。首先找到我的真正解决方案好吧,所以我认为这实际上有效,但它并不完全可以接受,因为它使用了受限制的API部分(但它自Java 1.3以来就存在并且仍然…

python generator_Python Generator漫谈

作为一个Python初学者, Python的格式化语法让众多编程小白追捧, 它的语法糖让代码变得简洁易读,它的庞大开源库让它在各个领域都能发挥作用. 但我时常感受到这个门槛极低的语言远没有表面上看起来易懂易用. 在Python的学习之路上, 我也时常迷茫于自己是否真正掌握了…

php5.5 连接数据库,php5.5 session_set_save_handler 连接数据库问题

好久前忘了在什么地方抄来的,一直好用,但是升级到PHP5.5就不好用了 出现警告服务器无法修改PHP.ini 只好自己试着用mysqli写 但是一直写不出来 请高手指教!!谢谢回复讨论(解决方案)把 mysql_ 都改成 mysqli_>把 mysql_ 都改成 …

python获取屏幕文字_详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)...

前言:今天为大家带来的内容是详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)本文具有不错的参考意义,希望能够帮助到大家!Python获取电脑截图有多种方式,具体如下:1. PIL中的ImageGrab模块2. wi…

支付宝php异步回调,支付宝支付成功之后异步回调处理

/*** alipay_notify.php.* User: lvfk* Date: 2017/10/26 0026* Time: 13:48* Desc: 支付宝支付成功异步通知*/include_once (__DIR__./../alipay-sdk-PHP-20171023143822/AopSdk.php);//验证签名$aop new \AopClient();$aop->alipayrsaPublicKey \Comm\Pay\Alipay::ALIPA…

python frame如何置顶_Python tkinter frame父窗口小部件排列列

我把滚动条放在一个框架里,框架放在一个小部件里。这个框架上面有一个标签。上面的标签有三列。带有滚动条的框架有三列。我无法让框架内和框架上方的三根柱子对齐。在如果您能帮我排好纵队,我们将不胜感激。谢谢。在以下是MWE:import tkinte…

MySQL和mq一致性,Mysql与Redis一致性问题

缓存一致性产生背景如果每次频繁的访问数据库的时候,虽然查询底层使用B树索引 但还会做磁盘的IO操作,可能会对数据库的压力非常大。所以为了能够减轻数据库的访问压力,会使用一些缓存实现减轻数据库的压力。比如 Redis、es、ehcache、oscache…

python boolean_Python成为专业人士笔记-Boolean 布尔操作符研究

专业人士笔记”系列目录:创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com‘and’ 和 ‘or’ 并不一定返回一个布尔值当使用or时,如果为真,它将返回表达式中的第一个值&…

python八大选择排序_python之八大排序方法

排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性冒泡排序 O(n^2) O(n) O(n^2) O(1) 稳定选择排序 O(n^2) O(n^2) O(n^2) O(1) 不稳定插入…