码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础(五):变量、函数和类

时间:2020-01-15 11:34:08      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:ssm   出现   是什么   声明变量   list   表示   包括   eth   python   

现在的编程思想的核心都是面向对象,而变量、函数和类就是面向对象的基础,

 

类是一些具有相似属性和功能的对象集合,如果我们把类比作制作手机的模具,那么通过这个模具,我们可以生产出大批量具有相同功能和属性的手机。

定义类的关键字:class

所有的class默认继承于object,我们来写一个手机类,

class Phone(object):
    pass

注意:括号里的object可以省略。

那么如何通过类创建一个实例对象呢?如下;

phone_01 = Phone()

 

函数

函数是一个功能点的具体实现,例如手机打电话,发短信,听歌等等。

定义函数的关键字:def

我们在手机类里定义打电话,发短信,听歌等函数,

class Phone(object):
    """手机类"""
    def call_number(self):
        """打电话"""
        pass
    def send_message(self):
        """发短信"""
        pass
    def listen_music(self):
        """听歌"""
        pass

注意:self表示调用当前函数的实例对象。

如何通过实例对象调用这些函数?如下;

phone01.call_number()
phone01.send_message()
phone01.listen_music()

上面这些定义在类中,没有任何装饰,但括号中包括self的方法称为实例方法,除了实例方法之外,还有类方法,静态方法,下面我们来看看它们都是怎么定义的;

# 类方法
@classmethod
def play_game(cls):
    """打游戏"""
    pass
# 静态方法
@staticmethod
def look_movie():
    """看电影"""
    pass

这些方法之间有是什么特征?

  • 类方法通过@classmethod修饰,静态方法通过@staticmethod修饰,实例方法不需要修饰;
  • 类方法参数中有cls标识,实例方法参数中有self标识,静态方法可以不需要任何参数标识
  • 类方法和实例方法和类具有关联性,静态方法和类没有任何关系,只是存放在类中而已
  • 类方法和静态方法能被实例对象和类调用,实例方法只能被实例对象调用

 

变量

变量是一个属性值,例如手机的颜色,重量等等。

我们给手机类声明颜色、重量等变量;

class Phone(object):
    color = balck
    weight = 300g

但是这样做有一个非常明显的缺点,就是实例化的手机颜色都是红色,重量都是300g,如果需要不同的属性值还得一个一个改,不太灵活,所以初始化方法__init__就出现了,

class Phone(object):
    def __init__(self, color, weight):
        """实例对象初始化方法"""
        self.color = color
        self.weight = weight

如果实例对象有相同的属性名且属性值可能不同的时候,就需要将这些变量放入初始化方法中,如何使用它呢?如下;

phone_01 = Phone(red, 500g)
phone_02 = Phone(black, 350g)

类中的参数实际上传给了__init__方法,因此phone_01和phone_02在实例化的时候就拥有了自己的颜色和重量属性。

在使用变量时,一定要注意作用域,根据作用域不同的划分, 可以将变量分为,

全局变量:定义在文件中,函数之外的变量,可以在文件任何地方被调用

成员变量:定义在函数之中的变量,只能在当前函数中使用

如果想让成员变量可以在函数外部被调用,可以使用关键字global将变量声明为全局变量,注意global声明变量时,不要给变量赋值。

Python基础(五):变量、函数和类

标签:ssm   出现   是什么   声明变量   list   表示   包括   eth   python   

原文地址:https://www.cnblogs.com/suanmiaoup/p/12174853.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!