程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(1)

(十)Python中级知识-面向对象之类

发布于2020-03-10 20:20     阅读(847)     评论(0)     点赞(11)     收藏(5)


1、概要

面向对象(Object Oriented,简称OO)思想在Java及其他编程语言中使用非常广泛,面向对象的思想也来自于生活中的灵感,很多现实世界的物体或聚合体我们都可以对其进行抽象化归纳,抽象思维是一种思想活动,依靠想象力和对事物的特征的通用特性进行整理,最终形成一个或一类的具化对象。如:人,我们可以理解为一种抽象的集合,具有名字、头、身、手、脚、能直立行走、可以使用工具、具备自主意识、等一些列特征,我们可以将这一系列公共特征组合在一起看成一个对象,即:人。

其中人这个对象,在编程语言中我们需要将这个对象表示出来,也就是我们说的类(Class),在类中,我们可以将名字等看作是类的属性,将直立行走等行为看作是类的方法。

引入这种面向对象的思想之后,我们可对现实世界中繁多的物体进行类化映射到程序世界里面,结合一些设计原则和设计模式,我们就可以构建更为复杂和庞大的程序,同时也更易于维护和扩展,当有了类之后,仿佛一切都有了规则和秩序。

本博主将按照Java语言的面向对象的特性,去学习Python语言的面向对象知识。
其中面向对象最重要的三个特征:封装、继承、多态。将围绕这三个特征切入学习。

在学习之前我们需要了解一些基本的知识,那么如如何定义类、如何使用类实例、如何调用类属性和方法?

2、创建一个类

类的基本组成单元:属性和方法。
类的语法格式如下:

class 类名:
    # 属性
    # 方法()

举个例子:
创建People类,此类包含两个属性,和两个方法。

# 定义对象为人的类
class People:
    # 类的属性(可以是公共、也可以是私有的)
    # 公有属性,能在本类之外调用
    name = ""
    # 私有属性,不能在本类之外调用
    __privacy = ""

    # 类的默认构造函数
    def __init__(self):
        print("调用默认构造函数")

    # 自定义构造函数
    # def __init__(self, name):
    #     self.name = name
    #     print(self.name + "调用自定义的构造函数")

    # 类的公有方法,无外部参数
    def walk(self):
        print("直立行走")

    # 类的私有方法,有外部参数
    def do(self, someThing):
        print(self.name + someThing)

类的属性分为:公有和私有两类。
  • 公有属性:可在其他类中访问, 属性名前没有两根下划线__。如上例子中的:name
  • 私有属性:不可在其他类中访问,属性名前有两根下划线__。如上例中的:__privacy
类的方法也分为:公有和私有两类。
  • 公有方法:可在其他类中访问, 方法名前没有两根下划线__。如上例子中的:do
  • 私有方法:不可在其他类中访问,方法名前有两根下划线__。如上例中的:__walk
提炼一下类的方法的语法格式:
def 方法名称(self,参数1,参数2,参数3,...参数n):
        #方法体

注意:类中的方法,第一个参数需要指定为self,这个是python约定的,且在调用该公共方法时,这个self对应的参数是不需要传入的,只需要传入,参数1,参数2,参数3,…参数n即可。

构造函数:

上面例子中的__init__即为类默认的构造函数,其中构造函数可以自定义,使用自定义构造函数之后,默认构造函数不再生效。构造函数执行顺序和java是一致的,类实例化的时候调用。

很诡异的地方是,自定义构造函数之后,默认构造函数不在生效了。

补充一点:静态方法,在方法名上方添加这个注解@staticmethod即可。

3、使用这个类

先导入类,然后创建类的实例,然后通过类的实例调用公共属性和公共方法。

# 导入类
from People import People

# 自定义构造函数
# people2 = People("成年人")
# 创建类的实例
people = People()

# 调用类的公共属性和方法
people.name = "成年人"
people.do('只看利弊')

people.name = "小孩子"
people.do('才分对错')

输出结果:
调用默认构造函数
成年人只看利弊
小孩子才分对错

4、总结

私有属性或方法都有两个下划线开头__;
创建实例通过:类名(),与java相比没有new 关键字;
Python类的用法上与Java非常类似。
其中我们看到 self 关键字,在类中定义一个私有或者公有的方法,需要指定第一个参数为self,self指类本身,类似java的this关键字,其中self这个参数名是可以修改的,如改成self2,self3等,但不建议这么做,因为Python一般都约定为此参数名为self。



所属网站分类: 技术文章 > 博客

作者:众神之战

链接:https://www.pythonheidong.com/blog/article/251467/0ac82eb414ac3cad9faa/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

11 0
收藏该文
已收藏

评论内容:(最多支持255个字符)