标签分类 技术文章:
当前位置:首页 > Python技术文章 > Python面向对象思想与应用入门教程

Python面向对象思想与应用入门教程总结

  • 发布时间:
  • 作者:码农之家原创
  • 点击:119

这篇文章主要知识点是关于Python、面向对象、类与对象、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python基础教程
Python基础教程完整第3版
  • 类型:Python3.5编程大小:10.1 MB格式:PDF出版:人民邮电出版社作者:芒努斯·利·海特兰
立即下载

更多Python相关的学习资源可以参阅 Python电子书程序设计电子书 等栏目。

Python面向对象思想与应用入门教程

本文实例讲述了Python面向对象思想与应用。分享给大家供大家参考,具体如下:

面向对象思想

1、面向对象的设计思想

面向对象是基于万物皆对象这个哲学观点。

2、面向对象和面向过程的区别

面向过程

在生活中:
它是一种看待问题的思维方式,在思考问题的时候,着眼问题是怎样一步一步解决的,然后亲力亲为去解决问题[类似于公司里的执行者]。
在程序中:
​ 代码是从上而下顺序执行,各个模块之间的关系尽可能简单,在功能上相对独立,程序的流程在写程序的时候就已经决定。

面向对象

在生活中:
它是另一种看待问题的方式,它着眼于找到一个具有特殊功能的个体,然后委托这个个体去帮你完成某件事.这更符合人类思考习惯的思想[指挥者]。
在程序中:
把数据以及对数据的操作方法放在一起,作为一个相互依存的整体–对象;
把同类的对象进行抽象出其共性,形成类;
类中大多数数据,只能用本类的方法进行处理;
类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信;
程序执行的流程由用户在使用的过程中决定;
使用面向对象思想进行开发,需要先找到具有所需功能的对象来使用,如果这个对象不存在,那么则需要创建这么一个具有所需功能的对象。
注意:面向对象只是一种思想,并不是一门编程语言。

区别总结

a. 都是看待问题的一种思维方式,都能解决问题;
b. 面向过程着眼于所有的事情亲力亲为;
c. 面向对象着眼于找到一个具有特殊功能的对象,委托这个对象实现你需要实现的功能。

python语言是面向对象的程序设计语言,类和对象是面向对象的核心。

类和对象

1、类和对象的概念

类:一个具有特殊功能的实体的集合[群体]。

对象:在一个类中,一个具有特殊功能的实体,能够帮忙解决特定的问题,对象通常也被称为实例。

两者之间的关系:类用于描述某一对象的共同特征,而对象则是类的具体存在。

举例:

学生 张三、李四
快递 顺丰、韵达

总结:

类与对象的关系:

a.类是对象的抽象,对象是类的具体体现。
b.类也是一种数据类型,只不过是自己定义的,类似与number,string等,它本身并不占用空间,但是它的实例[对象]是占用空间的。

2、类的定义

格式:

class 类名(object):
​ 类体

说明:

a.python中使用class关键字定义类;

b.类名只要是一个合法的标识符即可,命名规则遵循”大驼峰式命名”【每个单词的首字母大写】;

c.尽量使用单个或者多个有意义的单词连接而成

演示

# 一个简单的类的实例
class Person():
  print("hello")

3、类的设计

只需要关心3样东西

1.事物名称[类名]: 如人类 (Person);
2.特征(属性): 如身高(height) 年龄(age)等 ——>名词;
3.行为(方法): 如跑(run) 说话(say) —————>动词。

类中的方法和属性

1、方法和属性的定义

生活中描述事物的无非就是描述事物的特征和行为。

python中用类来描述事物也是如此,前面已经定义了类,但是,如果只有类单独存在,没有任何意义,所以定义类其实就是定义类中的成员[成员变量和成员方法]。

在类中的变量我们称之为成员变量,在类中的方法我们称之为成员方法(函数)。

成员变量—>类具有的特征 例如:人—>身高,性别,体重。

成员方法 —>类具有的行为 例如人—>吃喝玩乐。

因此,拥有相同的(或者类似)属性和行为的对象都可以抽取出一个类。

class Persion():
  #成员变量,初始值就是相当于默认值
  name = ""
  age = 0
  height = 0
  weight = 0
  #成员方法
  #在类的内部,使用def关键字来定义的一个方法
  #注意:区别于普通方法,类中方法的参数必须包含参数self,且为第一个参数
  #self代表类的实例(某个对象)
  def run(self):
    print("run")
  def eat(self, food):
    print("eat",food)
  def sleep(self):
    print("sleeping")

说明:定义了类,并在类中定义了成员变量和成员方法,但是成员变量和成员方法是如何使用的呢?

2、方法和属性的使用

2.1、实例化对象:

前面说过,对象是实实在在的个体,负责去完成某件指定的事情。

对象的创建的过程又被称作对象的实例化过程。

语法:

对象名 = 类名()

'''
实例化对象
格式: 对象名 = 类名()
注意: 没有参数的时候,小括号也不能省略
'''
#实例化一个对象
pre1 = Person()
print(pre1)
print(type(per1))
print(id(per1))
per2 = Person()
print(per2)
print(type(per2))
print(id(per2))

3、对象调用方法和属性

per = Preson()
'''
访问属性
格式:对象名.属性名
赋值:对象名.属性名 = 新值
'''
per.name = 'lili'
per.age = 18
per.height = 160
per.weight = 80
print(per.name, per.age, per.height, per.weight)
'''
访问方法
格式:对象名.方法名(参数列表)
'''
per.run()
per.eat("apple")
per.sleep()
#问题:目前来看Person创建的所有对象属性都是一样的
per2 = Person()
print(per2.age)
per3 = Person()
print(per3.age)

总结:

访问变量采用: 对象名.属性名;
访问方法采用: 对象名.方法名(参数列表)。

4、内存中的对象

per = Person()

说明:程序中定义Person类型的变量per实际是一个变量名,它被存放在栈内存中,它指向实际的Person对象,而真正的Person对象则存放在堆内存中。

综合练习:

第一天开学,介绍一下你自己其中包括姓名,年龄以及爱好

#学生类
class Student():
  #特征:成员变量
  self.name = ""
  self.age = ""
  self.hobby =""
  def introduce(self,name, age, hobby):
    print("大家好,我是%s,今年%d岁,爱好是%s"%(name,age, hobby))
  def singsong(self):
    print("娘子~啊哈")
  def dance(self):
    print("广场舞跳起来...")
  def lie(self):
    print("我家特别穷,我小时候就一直在放牛,只有几万头....")
# 类实例化
stu = Student()
# 成员方法调用
stu.introduce('ldc',18,'跑步')
stu.singsong()
stu.dance()
stu.lie()

输出:

大家好,我是ldc,今年18岁,爱好是跑步
娘子~啊哈
广场舞跳起来...
我家特别穷,我小时候就一直在放牛,只有几万头....

如何查看所有属性和方法

class Test():
  def __init__(self,name):
    self.name = name
  def test(self):
    print('testing...')
test = Test('测试')
# 查看所有属性和方法
list1 = dir(test)
# 检查实例是否有这个属性
print(hasattr(test, 'name'),hasattr(test, 'test'),hasattr(test, 'tt'))
# 设置属性值
setattr(test,'name','测试2')
# 获取属性值
print(getattr(test, 'name'))

输出:

True True False
测试2

希望本文所述对大家Python程序设计有所帮助。

以上就是本次给大家分享的关于Python的全部知识点内容总结,大家还可以在下方相关文章里找到如何由java转学python、 python ddt数据驱动实例代码、 python测试opencv时imread导致、 等python文章进一步学习,感谢大家的阅读和支持。

上一篇:7个让代码变得更易维护的Python库总结

下一篇:python使用参数对嵌套字典进行取值的实例操作

展开 +

收起 -

学习笔记
网友NO.811776

python面向对象方法的区别

Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。 方法包括:实例方法、静态方法和类方法,三种方法在内存中都归属于类,区别在于调用方式不同。 实例方法:由对象调用;至少一个self参数;执行普通方法时,自动将调用该方法的对象赋值给self; 类方法:由类调用; 至少一个cls参数;执行类方法时,自动将调用该方法的类复制给cls; 静态方法:由类调用;无默认参数。 实例方法 class Kls(object): def __init__(self, data): self.data = data def printd(self): print(self.data)ik1 = Kls('leo')ik2 = Kls('lee')ik1.printd()ik2.printd() 输出: leo lee 上述例子中,printd为一个实例方法。实例方法第一个参数为self,当使用ik1.printd()调用实例方法时,实例ik1会传递给self参数,这样self参数就可以引用当前正在调用实例方法的实例。利用实例方法的这个特性,上述代码正确输出了两个实例的成员数据。 相关推荐:《Python视频教程》 类方法 Python 的类方法采用装饰器@classmethod来定义,我们直接看例子。 class Kls(object): num_inst = 0 def __init__(self): Kls.num_inst = Kls.num_inst + 1 @classmethod def get_no_of_instance(cls): return cls.num_instik1 = Kls()ik2 = Kls()print ik1.get_no_of_instance()print Kls.get_no_of_instance() 输出: 2 2 在上述例子中,我们需要统计类……

网友NO.781619

Python面向对象类的继承实例详解

本文实例讲述了Python面向对象类的继承。分享给大家供大家参考,具体如下: 一、概述 面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”,继承的过程,就是从一般到特殊的过程。在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式主要有2类:实现继承、接口继承。 实现继承是指使用基类的属性和方法而无需额外编码的能力。 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力(子类重构爹类方法)。 在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee 是一个人,Manager 也是一个人,因此这两个类都可以继承 Person 类。但是 Leg 类却不能继承 Person 类,因为腿并不是一个人。 OO开发范式大致为: 划分对象→抽象类→将类组织成为层次化结构(继承和合成) →用类与实例进行设计和实现几个阶段。 二、类的继承 2.1 继承的定义 class Person(……

网友NO.116314

python3 面向对象__类的内置属性与方法的实例代码

0.object类源码 class object: """ The most base type """ def __delattr__(self, *args, **kwargs): # real signature unknown """ Implement delattr(self, name). """ pass def __dir__(self): # real signature unknown; restored from __doc__ """ __dir__() - list default dir() implementation """ return [] def __eq__(self, *args, **kwargs): # real signature unknown """ Return self==value. """ pass def __format__(self, *args, **kwargs): # real signature unknown """ default object formatter """ pass def __getattribute__(self, *args, **kwargs): # real signature unknown """ Return getattr(self, name). """ pass def __ge__(self, *args, **kwargs): # real signature unknown """ Return self=value. """ pass def __gt__(self, *args, **kwargs): # real signature unknown """ Return selfvalue. """ pass def __hash__(self, *args, **kwargs): # real signature unknown """ Return hash(self). """ pass def __init_subclass__(self, *args, **kwargs): # real signature unknown """ This method is called when a class is subclassed. The default implementation does nothing. It may be overridden to extend subclasses. """ pass def __init__(self): # known special case of object.__init__ """ Initialize self. See help(type(self)) for accurate signature. """ pass def __le__(self, *args, **kwargs): # real signature unknown """ Return self=value. """ pass def __lt__(self, *args, **kwargs): # real signature unknown """ Return selfvalue. """ pass @staticmethod # known case of __new__ def __new__(cls, *more): # known special cas……

网友NO.837100

Python语言的面向对象编程的介绍(附代码)

本篇文章给大家带来的内容是关于Python语言的面向对象编程的介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 Python语言的面向对象 面向对象编程,即OOP,对于面向对象的语言来说,常常会提到封装、继承、类等概念。 面向对象的由来:基于哲学中的万物皆对象,核心思想是将我们的程序对象化,模块化,在Python语言中常用class命名一个类,比如class Person(),class Student等等。在类中常常有属性和行为,比如在Person这个类中有名字,身高,体重等属性,这些Python有吃,睡,交朋友等行为。通过类我们可以很方便的实现后期的调用,而不需要将一些重复的代码再写一遍,这样大大提高了编程的效率。所以目前面向对象的编程语言应用广泛。 面向对象有三大特征 继承,封装,多态 1 继承 继承概念:一个类继承另一个类,则称继承的类为子类,被继承的类为父类。 目的:能够实现代码的重复使用。 理解:子类与父类的关系并不是日常生活中的父子关系,子类与父类而是一种特殊化与一般化的关系,是is-a的关系,子类是父类更加详细的分类。如 class dog 继承于 animal,就可以理解为dog is a animal.注意设计继承的时候. 结果:继承后子类自动拥有了父类的属性和方法,子类可以写自己特有的属……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明