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声明变量时,不要给变量赋值。

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

时间: 2024-08-28 16:55:36

Python基础(五):变量、函数和类的相关文章

Python基础三:函数和类

函数的定义和调用 1 def fun(x): 2 if x > 0: 3 print "x>0" 4 else: 5 print "x<=0" 6 7 a = 3.5 8 b = -1 9 fun(a) 10 fun(b) 类的定义和基本调用 1 class Student: 2 def __init__(self, name, age): 3 self.name = name 4 self.age = age 5 6 def studying(s

萌新向Python数据分析及数据挖掘 第一章 Python基础 第八节 函数

第一章 Python基础 第八节 函数 定义函数 函数 其实就可以理解为外挂,把一些常用的.重复率比较多你又不想重复写的东西写进函数,加上开关实现简化操作 举个简单的例子 1 def greet_user(username): 2 #定义一个叫做"迎接用户"的外挂,让他能直接打印一个问候语,括号里面是函数需要输入的东西,也就是个性化的东西 3 """先是简单的问候语""" 4 print("Hello! "

python基础之内置函数与匿名函数

python基础之内置函数与匿名函数 内置函数68个如下图 重点的关注的内置函数len,sorted,enumerate,all,any,zip,filter,map,reversed,slice len(o):参数为O,返回数据类型的长度sorted():      sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list iterable:是可迭代类型; cmp:用于比较的函数,比较什么由key决定; ke

python第五章函数

第五章 函数 5.1三元运算/三目运算 v = 前面 if 条件语句 else 后面 #如果条件成立,"前面"赋值给v,否则后面赋值给v. v = a if a>b else b # 取a和b中值较大的赋值给v # 让用户输入值,如果值是整数,则转换成整数,否则赋值为None data = input('请输入值:') value = int(data) if data.isdecimal() else None 5.2 函数 5.2.1.函数介绍 截止目前为止,都是面向过程式编

python 基础篇 11 函数进阶----装饰器

11. 前??能-装饰器初识本节主要内容:1. 函数名的运?, 第?类对象2. 闭包3. 装饰器初识 一:函数名的运用: 函数名是一个变量,但他是一个特殊变量,加上括号可以执行函数. ?. 闭包什么是闭包? 闭包就是内层函数, 对外层函数(非全局)的变量的引?. 叫闭包 可以使用_clesure_检测函数是否是闭包  返回cell则是闭包,返回None则不是 闭包的好处: 由它我们可以引出闭包的好处. 由于我们在外界可以访问内部函数. 那这个时候内部函数访问的时间和时机就不?定了, 因为在外部,

python基础(3):函数对象、函数嵌套、名称空间与作用域、装饰器

函数对象 函数嵌套 名称空间与作用域 闭包函数 装饰器 练习 一 函数对象 #1 可以被引用 def max(x, y): return x if x > y else y func = max print(func(1, 2)) #2 可以当作参数传递 def max(x, y): return x if x > y else y def max_1(x, func): return func(x, 1) print(max_1(2, max)) #3 返回值可以是函数 #4 可以当作容器类

Python基础知识之函数、模块

1.Python模块. Python一个.py后缀的文件,称为模块.Python模块可以包含变量.函数.类,同时类中又可以定义变量和函数. 2.Python模块导入. (1) Python模块全部导入方式:from 模块名 import * (2) Python模块按需导入方式:from 模块名 import 函数名/类名 3.函数.常用函数如下. str(o):将数字转化为字符串函数, int(o):将字符串转化为数字函数. format():字符串格式化函数. replace:字符串替换函数

Python基础----面向对象编程介绍、类和对象

面向对象变成介绍 面向过程编程 核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西.主要应用在一旦完成很少修改的地方,如linux内核.git.apache服务器等 优点:极大的降低了程序的设计复杂度 缺点:可扩展性差,改动一个地方很可能要改多个地方,牵一发而动全身 面向对象编程:不是编程的全部,只是用来解决软件可扩展性的 核心是对象(上帝式思维),对象作为程序的基本单元,一个对象包含了数据和操作数据的函数.面向对象就是把计算

python语法学习之函数、类、模块

Python中通过使用类(class)和对象(object)来实现面向对象(object-oriented programming,简称OOP)的编程. 面向对象编程的最主要目的是提高程序的重复使用性,这和函数的目的相类似. 一:函数 如果你需要在程序中重用代码,---------定义函数. def 函数名(参数)://todo 如: 输出: 也可以将函数的参数定义为默认参数,注:默认参数一般放参数的最后,如: 输出: 二:类 类的定义应该是放在面向对象的标题里,但是我们一般函数定义在类里面,从