Python基础学习七
创始人
2024-05-16 12:40:18
0

Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。

如果你以前接触过面向对象的编程语言,像Java,C++等。那么Python的面向对象对你来说就是小菜一碟, So easy。如果没有学习过面向对象编程的相关概念,也没有关系。下面会简单的介绍一下面向对象的相关概念。

接下来我们先来简单的了解下面向对象的一些基本特征。

面向对象的基本概念

  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  • 方法:类中定义的函数。
  • 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
  • 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
  • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
  • 局部变量:定义在方法中的变量,只作用于当前实例的类。
  • 实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。
  • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
  • 实例化:创建一个类的实例,类的具体对象。
  • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

创建类

#ClassOne.py
class Calculator(object):#define class to simulate a simple calculatordef __init__ (self):#start with zeroself.current = 0def add(self, amount):#add number to currentself.current += amountdef getCurrent(self):return self.current

用 class 关键字来创建一个类,后面是要创建的类的名字,参数 object 是要创建的类的父类。

def init(self): 构造函数?参数 self 就是当前实例吧,类似 java 的 this。所以说如果学习过Java的话,Python中的面向对象理解起来还是相对容易的。各种概念都是相通的。

从执行结果可以很明显的看出,self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类。

但是请注意self 不是 python 关键字。

使用类

from ClassOne import * #get classes from ClassOne file 从 ClassOne 文件获取类
myBuddy = Calculator() # make myBuddy into a Calculator object 使 myBuddy 成为一个 Calculator 对象
myBuddy.add(2) #use myBuddy's new add method derived from the Calculator class
print(myBuddy.getCurrent()) #print myBuddy's current instance variable

在另一个文件里写入上面的代码。现在来解析一下

  1. 假设所有的类都在 python 目录下
  2. from ClassOne,告诉 python 引用哪个文件,import *,意思是我们需要该文件里的所有类
  3. myBuddy = Calculator(),创建一个 Calculator 的实例 myBuddy,在 python 里不需要 new 关键字

相关内容

热门资讯

国产伺服第二,雷赛智能连续5季... 据MIR睿工业最新数据报告显示,2025年一季度通用伺服市场整体增幅达4.5%。值得注意的是,雷赛智...
昆仑润滑:以自主研发造就硬核科...   2月20日,中国石油宣布,我国首口超万米科探井——深地塔科1井在新疆塔里木盆地地下 10910 ...
娃娃 电钻 洗衣机 产业没能回... 据美国媒体当地时间10日报道,美国泰尔西咨询集团近日发布的行业报告显示,自美国政府4月2日宣布对全球...
昆仑润滑:用“黄金血液”守护大...   在第9个中国品牌日到来之际,央视网《源动中国》栏目组走进昆仑润滑兰州润滑油研发中心,探访新中国第...
白云山:以317.9亿元品牌价... 5月9日至11日,2025世界品牌莫干山大会在浙江省湖州市德清县举行,该大会由新华社品牌工作办公室携...
5年6倍!紫金矿业还值得期待吗... 来源:格隆汇今年以来,国际金价开始不断放飞自我越涨越疯,期间于4月22日一度突破3500美元/盎司大...
文化特派员邀请冠军导师 浙江打... 中新网浙江新闻5月11日电(林波)5月9日至10日,在浙江省文化特派员的助推下,“龙腾柯桥·非遗传承...
省级示范!贵阳高新区拟入选两个...   近日,贵州省推进开发区高质量发展领导小组办公室发布的《开发区高质量发展拟确定单项示范名单》已完成...
迈为股份携手启威星及SunDr... 人民财讯5月11日电,据迈为股份消息,近日,迈为股份(300751)、江苏启威星装备科技有限公司(迈...
青海共青团服务青年就业专场招聘... 中新网青海新闻5月11日电 (毛顺龙 孙睿)5月10日,由共青团海南州委、海南州人力资源和社会保障局...
印度现恐慌性抢购部分商店食品售... 转自:北京时间 【#印度现恐慌性抢购部分商店食品售罄#】...
一气呵成!运油-20的跨昼夜“... 近日 东部战区空军航空兵某旅开展跨昼夜空中加油训练多架歼-16战机与运油-20组成战术编队连续完成对...
刚刚!特朗普发声:将大幅增加! 转自:宁波晚报特朗普,传来多则消息!据外媒最新消息,美国总统特朗普5月11日在社交媒体上发文称,他将...
亚信安全获政府补助270余万元... 上证报中国证券网讯 5月10日,亚信安全发布公告称,公司于近期收到政府补助270.9万元,该补助属于...
贵州轮胎:控股股东拟斥资0.5... 贵州轮胎晚间公告,公司控股股东贵阳市工业投资有限公司(以下简称“贵阳工投”)计划自2025年5月12...
成都锦江区一在建工地起火 致2... 5月11日11时16分,成都市119指挥中心接到火灾报警称锦江区锦鹏三街一在建工地发生火灾。接警后锦...
中达集团控股(0139.HK)... 继单日大涨50%之后,中达集团控股(0139.HK)再度迎来股价异动。2025年5月9日,公司股价单...
凝心聚力 实干笃行丨重大工程有... 本文转自【央视新闻客户端】;预期是市场信心的关键,而在复杂严峻的国内外形势下,稳预期的关键,就是要结...
8个中央指导组,分别进驻了这里 转自:北京日报客户端据新华社5月11日消息,根据党中央在全党开展深入贯彻中央八项规定精神学习教育统一...
抖音元老陈林离职创业?知情人士... 有消息称,字节原高级副总裁、前教育业务负责人陈林已离职创业,与科大讯飞前高管王卓共同创立"银河智学"...