简单讲解Python面向对象编程_惠州计算机Python培训学校
作者:黄君发布时间:2021-01-29分类:Python技术浏览:1117
学习目标:
1-面向对象编程
2-类和对象
3-对象的属性和方法
4-类的特性
Python面向对象编程
一种编程程序的设计思想,把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。
在Python中,所有数据类型都可以视为对象,也可以自定义对象。自定义的对象数据类型就是面向对象中的类(class)概念。
面向对象的设计思想是抽象出Class(类)和instance(实例),面向对象的抽象程度比函数高,一个类即包含数据又包含操作数据的方法。
类和对象
面向对象编程的两个非常重要的概念:类和对象
对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组的景象定义,提出了另外一个新的概念——类
类
具有相似内部状态和运动规律的实体的集合。具有相同发生和行为事物的统称,类是抽象的,在使用的时候通常会找到这个类的一个具体的存在,使用这个具体的存在。一个类可以找到多个对象。
对象
某一个具体事物的存在,在现实世界中可以是看得风措得着的,可以是直接使用的。
类与对象之间的关系:类就是创建对象的模板
定义类和创建对象
定义一个类和创建对象,格式如下:
#创建类——经典方法
class 类名: #class-关键字,类名的命名使用大驼峰命名法,即首字母大写
#如下:
class Hero:
#创建类——新方法
class Hero(object):#object是python里所有类的最顶级父类
#函数,在类中叫做方法
#创建方法
def info(self):#info是一个实例方法,第一个参数一般是self:表示实例对象本身。
print("这是面向对象hero")
#创建对象
对象名1 = 类名()
对象名2 = 类名()
对象名3 = 类名()
对象名(不必遵循大驼峰命名法) = 类名()
my_hero = Hero()
#对象的使用方法,对象名.(点语法)方法名
my_hero.info()
#输出结果:
这是面向对象hero
#再创建一个对象
my_hero2 = Hero()
print(my_hero)
print(my_hero2)
#输出结果:
<__main__.Hero object at 0x000001F23E784400>#地址:在存储机制中
<__main__.Hero object at 0x000001F23E761F98>#地址
对象的属性和方法
获取和添加对象的属性
class teacher(object):
def show(self):
print("今天北京下雪了")
#创建对象
teacher_zhang = teacher()
#添加属性、特点、特征
teacher_zhang.name = "张三"
teacher_zhang.age = 20
teacher_zhang.sex = "男"
#获取属性,通过点语法
print(teacher_zhang.name)
输出结果:张三
#修改属性
teacher_zhang.age = 30
print(teacher_zhang.age)
输出结果:30
init 魔法函数:用来做属性的初始化
class teacher(object):
def __init__(self):
print("这是init方法")
def showName(self):
print("我的名字")
zhangsan = teacher()
zhangsan.showName()
#输出结果
这是init方法
我的名字
#__init__()方法,在创建一个对象时自动被调用,不需要手动调用
即:
class teacher(object):
def __init__(self):
print("这是init方法")
def showName(self):
print("我的名字")
zhangsan = teacher()
#输出结果:
这是init方法
#有参数的init方法
class teacher(object):
def __init__(self,name,age):
print("这是init方法")
self.name = name
self.age = age
print(name,age)
def showName(self):
print("我的名字")
zhangsan = teacher("张三",20)
#输出结果
张三 20
类的特性:封装、继承、多态
继承:多个类之间的所属关系
class Father(object):
def __init__(self,name):
self.name = name
print("我叫%s"%self.name)
def info(self):
print("我来自")
class Son(object):
def show(self):
print("展现我自己")
guoQilin = Son()
guoQilin.show()
#输出结果:展示我自己
单继承:Son类继承于Father
class Father(object):#父类:基类
def __init__(self,name):
self.name = name
self.family = "郭氏"
print("我叫%s"%self.name)
def info(self):
print("我来自%s家族"%self.family)
class Son(Father):#子类,通过继承,可以使用父类中的方法
def show(self):
print("展现我自己")
def info(self):
print("我是德云社新一代,个性就是要与众不同")
guoQilin = Son("郭麒麟") #”郭麒麟“是属性,guoQilin是一个对象
guoQilin.show()
guoQilin.info()
#输出结果
我叫郭麒麟
展现我自己
我是德云社新一代,个性就是要与众不同
子类在继承的时候,子类定义小括号中父类的名字;父类中的属性与方法都会传给子类;虽然子类没有定义init方法,但是父类有,子类应付使用父类的方法。
多继承:
#多继承
class Father(object):
def __init__(self,name):
self.name = name
self.family = "郭氏"
print("我叫%s"%self.name)
def info(self):
print("我来自%s家族"%self.family)
class ShiFu(object):
def __init__(self):
self.teacher = "于氏门生"
def speak(self):
print("我要说相声")
class Son(Father,ShiFu):
def show(self):
print("展现我自己")
def info(self):
print("我是德云社新一代,个性就是要与众不同")
guoQilin = Son("郭麒麟") #”郭麒麟“是属性,guoQilin是一个对象
guoQilin.show()
guoQilin.info()
guoQilin.speak()
#输出结果
我叫郭麒麟
展现我自己
我是德云社新一代,个性就是要与众不同
我要说相声
#魔法属性,可以查看继承顺序,子类,父类,师父类
print(Son.__mro__)
#输出结果
(<class '__main__.Son'>, <class '__main__.Father'>, <class '__main__.ShiFu'>, <class 'object'>)
重写父类方法
子类继承父类,父类的方法满足不了子类的需要可以对父类的方法进行重写;重写的特点:继承关系,方法名相同
属性方法
类属性与实例属性
类属性就是类对象所拥有的属性,这被所有类对象的实例对象所共有,在内存中只存在一个副本。
#类属性
class People(object): #创建一个类
ame = "tom" #公有的类属性
__age = 12 #私有的类属性
p = People() #创建一个对象
#类的共有属性,实例(对象)与类都可以调用
print(p.name)
print(People.name)
#输出结果:
tom
tom
#私有的类属性,只能在类里面调用
print(p._age)
print(People._age)
#实例属性
class People(object):
ame = "tom"
#类属性,直接在类里面写的
def __init__(self):#self会将其下的属性指给对象
self.name = "xiaowang" #实例属性
self.age = 20
p = People()
p.age = 12
print(p.name)
print(p.age)
#输出结果
xiaowang
12
可以用实例属性改掉类属性
静态方法和类方法
类方法是类对象所拥有的方法,第一个参数必须是类对象,一般以cls作为第一个参数,能够通过实例对象和类对象去访问。类方法用@classmethod修饰。
静态方法用@staticmethod修饰,不能传入self,是独立的单纯的函数 。
点击咨询直接了解更多相关资料,我在惠州北大青鸟新方舟等你。
本文内容转载自网络,版权归原作者所有,如有侵权请联系我们进行删除。
标签:惠州计算机软件培训惠州计算件软件开发惠州计算机软件基础惠州计算机Python软件开发惠州Python培训学校惠州Python培训python基础教程python是什么python教程python入门
- Python技术排行
-
- 1Python3文件对象的方法之f.write()_惠州计算机Python软件开发
- 2Python对工作具体有什么帮助
- 3Python3 len()方法_惠州计算机Python培训学校
- 4Python3 tuple 函数_惠州计算机Python培训学校
- 5Python float() 函数_惠州计算机Python培训学校
- 6Python type() 函数_惠州计算机Python培训学校
- 7Python iter() 函数_惠州计算机Python培训学校
- 8Python3 bytes 函数_惠州计算机Python培训学校
- 9Python property() 函数_惠州计算机Python培训学校
- 标签列表
-
- Java (3694)
- 北大青鸟 (3713)
- 软件开发 (3613)
- JAVA (3413)
- UI设计入门 (2093)
- 惠州北大青鸟 (4375)
- 惠州IT培训 (2558)
- UI设计培训 (2090)
- 惠州UI设计培训 (2095)
- 惠州UI设计培训学校 (2090)
- 惠州计算机软件培训 (6260)
- 惠州计算件软件开发 (6260)
- 惠州计算机软件基础 (6261)
- 惠州计算机JAVA培训 (3574)
- 惠州计算机Java软件开发 (3620)
- 惠州计算机JAVA软件开发 (4645)
- 惠州计算机JAVA软件开发学校 (3338)
- 惠州计算机Java软件开发培训 (3338)
- 北大青鸟IT计算机学校 (5048)
- 北大青鸟IT软件学校 (5062)
- 北大青鸟IT学校 (5059)
- 惠州计算机UI设计软件开发 (2088)
- UI设计基础教程 (2088)
- UI设计是什么 (2088)
- UI设计教程 (2088)
- 网站分类
-
- 计算机教程
- 计算机入门
- 职业学校
- 新闻动态
- 专业课程
- 热门技术
- SEO
- 培训教程
- windows
- linux教程
- 系统集成
- 网站开发
- Html5
- 办公软件
- 师资力量
- 热点问答
- 联系我们
- 计算机学校
- 惠州计算机学校
- 河源计算机学校
- 广州计算机学校
- 深圳计算机学校
- 湛江计算机学校
- 佛山计算机学校
- IT计算机培训信息
- 设计专业
- UI
- 影视特效
- 游戏动漫设计
- Photoshop
- AI设计
- 软件教程
- Java技术
- C语言/C++语言培训
- C#
- Python技术
- PHP
- 数据库
- SQL Server
- 网络教程
- 网络安全
- 网络营销
- 软件专业
- 大数据专业
- 前端开发专业
- 软件测试专业
- Python专业
- 软件实施
- 珠海计算机学校
- 初中生学什么好
- 计算机认证
- 文章归档
-
- 2024年11月 (14)
- 2024年10月 (32)
- 2024年9月 (29)
- 2024年8月 (68)
- 2024年7月 (59)
- 2024年6月 (43)
- 2024年5月 (48)
- 2024年4月 (80)
- 2024年3月 (65)
- 2024年2月 (54)
- 2024年1月 (25)
- 2023年12月 (12)
- 2023年11月 (73)
- 2023年10月 (134)
- 2023年9月 (34)
- 2023年8月 (3)
- 2023年7月 (3)
- 2023年6月 (12)
- 2023年5月 (30)
- 2023年4月 (72)
- 2023年3月 (11)
- 2023年2月 (34)
- 2023年1月 (37)
- 2022年12月 (78)
- 2022年11月 (359)
- 2022年6月 (1193)
- 2022年5月 (570)
- 2022年4月 (1567)
- 2022年3月 (982)
- 2022年2月 (54)
- 2022年1月 (182)
- 2021年9月 (308)
- 2021年8月 (1704)
- 2021年7月 (2423)
- 2021年6月 (1806)
- 2021年5月 (1569)
- 2021年4月 (1380)
- 2021年3月 (1255)
- 2021年2月 (709)
- 2021年1月 (1521)
- 2020年12月 (3626)
- 2020年11月 (1646)
- 2020年10月 (1046)
- 2020年9月 (592)
- 最近发表
-
- 清远信息:2024年广清杯清远南粤家政技能大赛举行决赛|||计算机培训机构
- 汕尾信息:陈良川带队到汕尾技师学院调研|||计算机职业技能培训班
- 东莞信息:凤岗凤岗镇组织召开社保参保缴费及劳动用工政策宣讲会|||计算机软件培训学校
- 阳江信息:2024年度注册城乡规划师职业资格考试的合格标准是怎样的?|||计算机软件培训学校
- 阳江信息:职业技能提升补贴对象有哪些?|||大学生计算机培训学校
- 清远信息:清远市首家社保服务合作网点在清城区举办启动仪式|||计算机职业技能培训班
- 汕头信息:招聘658名中高端人才!2024年汕头市引进中高端人才专场招聘会举行|||北大青鸟计算机培训中心
- 东莞信息:广东省社保智能经办现场会在东莞召开|||大学生计算机培训学校
- 东莞信息:东坑镇举办2024年重点群体系列招聘活动|||计算机职业技能培训班
- 东莞信息:万江万江街道成功举办第四届粤菜师傅烹饪技能竞赛|||广州计算机编程培训