python静态类成员变量(python函数怎么实现static变量?)

1.python函数怎么实现static变量?

python函数实现static变量具体如下:

def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):

while True:

ok = raw_input(prompt)

if ok in ('y', 'ye', 'yes'): return True

if ok in ('n', 'no', 'nop', 'nope'): return False

retries = retries - 1

if retries < 0: raise IOError, 'refusenik user'

print complaint

Python函数默认值的使用可以在函数调用时写代码提供方便,很多时候我们只要使用默认值就可以了。 所以函数默认值在python中用到的很多,尤其是在类中间,类的初始化函数中一帮都会用到默认值。 使用类时能够方便的创建类,而不需要传递一堆参数。

只要在函数参数名后面加上 ”=defalut_value”,函数默认值就定义好了。有一个地方需要注意的是,有默认值的参数必须在函数参数列表的最后,不允许将没有默认值的参数放在有默认值的参数后,因为如果你那样定义的话,解释器将不知道如何去传递参数。

python类变量和成员变量,静态类的成员变量,python定义类的成员变量

2.如何在Python中定义静态变量

Python使用函数默认值实现函数静态变量的方法,具体方法如下:

一、Python函数默认值

Python函数默认值的使用可以在函数调用时写代码提供方便,很多时候我们只要使用默认值就可以了。 所以函数默认值在python中用到的很多,尤其是在类中间,类的初始化函数中一帮都会用到默认值。 使用类时能够方便的创建类,而不需要传递一堆参数。

只要在函数参数名后面加上 ”=defalut_value”,函数默认值就定义好了。有一个地方需要注意的是,有默认值的参数必须在函数参数列表的最后,不允许将没有默认值的参数放在有默认值的参数后,因为如果你那样定义的话,解释器将不知道如何去传递参数。

先来看一段示例代码:

def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):

while True:

ok = raw_input(prompt)

if ok in ('y', 'ye', 'yes'): return True

if ok in ('n', 'no', 'nop', 'nope'): return False

retries = retries - 1

if retries < 0: raise IOError, 'refusenik user'

print complaint

你调用上面的函数时,可以修改重试次数和输出的提示语言,如果你比较懒得话,那么什么都不用改。

二、python使用函数默认值来实现函数静态变量的功能

Python中是不支持静态变量的,但是我们可以通过函数的默认值来实现静态变量的功能。

当函数的默认值是内容是可变的类时,类的内容可变,而类的名字没变。(相当于开辟的内存区域没有变,而其中内容可以变化)。

这是因为python中函数的默认值只会被执行一次,(和静态变量一样,静态变量初始化也是被执行一次。)这就是他们的共同点。

再来看下面的程序片段:

def f(a, L=[]):

L.append(a)

return L

print f(1)

print f(2)

print f(3)

print f(4,['x'])

print f(5)

其输出结果是:

[1]

[1, 2]

[1, 2, 3]

['x', 4]

[1, 2, 3, 5]

前面的好理解,为什么最后 “print f(5)”的输出是 “[1, 2, 3, 5]”呢?

这是因为 “print f(4,['x'])”时,默认变量并没有被改变,因为默认变量的初始化只是被执行了一次(第一次使用默认值调用),初始化执行开辟的内存区(我们可以称之为默认变量)没有被改变,所以最后的输出结果是“[1, 2, 3, 5]”。

变量,静态,成员,python

3.如何在Python中定义静态变量

Python使用函数默认值实现函数静态变量的方法,具体方法如下:一、Python函数默认值Python函数默认值的使用可以在函数调用时写代码提供方便,很多时候我们只要使用默认值就可以了。

所以函数默认值在python中用到的很多,尤其是在类中间,类的初始化函数中一帮都会用到默认值。 使用类时能够方便的创建类,而不需要传递一堆参数。

只要在函数参数名后面加上 ”=defalut_value”,函数默认值就定义好了。有一个地方需要注意的是,有默认值的参数必须在函数参数列表的最后,不允许将没有默认值的参数放在有默认值的参数后,因为如果你那样定义的话,解释器将不知道如何去传递参数。

先来看一段示例代码:def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):while True:ok = raw_input(prompt)if ok in ('y', 'ye', 'yes'): return Trueif ok in ('n', 'no', 'nop', 'nope'): return Falseretries = retries - 1if retries < 0: raise IOError, 'refusenik user'print complaint你调用上面的函数时,可以修改重试次数和输出的提示语言,如果你比较懒得话,那么什么都不用改。二、python使用函数默认值来实现函数静态变量的功能Python中是不支持静态变量的,但是我们可以通过函数的默认值来实现静态变量的功能。

当函数的默认值是内容是可变的类时,类的内容可变,而类的名字没变。(相当于开辟的内存区域没有变,而其中内容可以变化)。

这是因为python中函数的默认值只会被执行一次,(和静态变量一样,静态变量初始化也是被执行一次。)这就是他们的共同点。

再来看下面的程序片段:def f(a, L=[]):L.append(a)return Lprint f(1)print f(2)print f(3)print f(4,['x'])print f(5)其输出结果是:[1][1, 2][1, 2, 3]['x', 4][1, 2, 3, 5]前面的好理解,为什么最后 “print f(5)”的输出是 “[1, 2, 3, 5]”呢?这是因为 “print f(4,['x'])”时,默认变量并没有被改变,因为默认变量的初始化只是被执行了一次(第一次使用默认值调用),初始化执行开辟的内存区(我们可以称之为默认变量)没有被改变,所以最后的输出结果是“[1, 2, 3, 5]”。

4.python在函数中有static变量吗

没有直接的static变量

用下面的方式模拟

def static_vars(**kwargs):

def decorate(func):

for k in kwargs:

setattr(func, k, kwargs[k])

return func

return decorate

@static_vars(counter=0)

def foo():

foo.counter += 1

print "Counter is %d" % foo.counter

python静态类成员变量

转载请注明出处代码入门网 » python静态类成员变量(python函数怎么实现static变量?)

资讯

python返回列表元素索引(Pythonlist.idex())

阅读(25)

本文主要为您介绍python返回列表元素索引,内容包括Pythonlist.idex(),如何在python列表中查找某个元素的索引,python如何返回一个list是第二个string出现在第一个string的index只能。Python List index()方法描述index() 函数用于从列表中找

资讯

python2.7爬虫项目(Python爬链接爬虫怎么写?)

阅读(24)

本文主要为您介绍python2.7爬虫项目,内容包括[Python2.7][爬虫][BeautifulSoup],如图,使用soup.find()查找到目,Python爬链接爬虫怎么写?,Python什么爬虫库好用?。python爬虫我们都知道是可以在网上任意搜索的脚本程序,主要是帮助我们再也不

资讯

python3.1(如何在安装pip3以及第三方python库)

阅读(21)

本文主要为您介绍python3.1,内容包括如何在安装pip3以及第三方python库,python网络编程教程在哪里可以下载?,关于python软件版本的问题python不同版本中,是不是有些。在安装pip3以及第三方python库(for Mac)环境OS:10.12.3 (16D32) macOS Sie

资讯

python导出app(python怎么把软件打包出来)

阅读(18)

本文主要为您介绍python导出app,内容包括python怎么把软件打包出来,python能做手机软件吗?想自己自学编程,目的是写个简单的计算爱问,如何用python抓取js生成的数据?。Python是纯粹的自由软件,具有丰富和强大的库。能够把用其他语言制作的各

资讯

python刻画曲线(Python如何画函数的曲线)

阅读(20)

本文主要为您介绍python刻画曲线,内容包括Python如何画函数的曲线,使用python解方程并绘制曲线,例子:如|X|=1,绘制曲线.,python怎么画曲线图。输入以下代码导入我们用到的函数库。>>> import numpy as np>>> import matplotlib.pyplot

资讯

python中的宏定义(python如何将一系列数字十个一行输出)

阅读(21)

本文主要为您介绍python中的宏定义,内容包括python有宏定义,或者枚举么,在汇编语言中在后面的宏定义中宏名用到了前一个宏定义宏体中东西,,python如何将一系列数字十个一行输出。使用循环输出列表,利用 计数器控制输出数量,当输出到第十个,计

资讯

c与python

阅读(17)

本文主要为您介绍c与python,内容包括学c和python哪个好,c语言和python的区别,Python和C哪个更好学?。python和c先学哪个?首先,我们都知道,兴趣是好老师,所以培养起兴趣很重要。那么,更简单更容易掌握的就是Python啦。Python

资讯

python发

阅读(16)

本文主要为您介绍python发,内容包括怎么把python程序发给别人,怎样用手机收发软件,python平台+sisboom,Python是什么意思?做什么用的。Python, 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发

资讯

python位或

阅读(16)

本文主要为您介绍python位或,内容包括python中字符串的按位或怎么实现,python中字符串的按位或怎么实现,在Python的进制数按位异或问题,怎么解决。& 按位与| 按位或^ 按位异或1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的

资讯

python表达式if

阅读(14)

本文主要为您介绍python表达式if,内容包括Python中,if与elif有何区别,pythonif多条件判断怎么快,pythonif语句。主体不同if:用来判定所给定的条件是否满足,根据判定的结果决定执行给出的两种操作之一。2、elif:在判定条件不满足的情况下,需要执

资讯

pythonif换行

阅读(17)

本文主要为您介绍pythonif换行,内容包括python如何换行,python中怎么换行,python换行问题。首先运行终端或者cmd命令行(windows下)。执行python3.5的命令。

资讯

python返回列表元素索引(Pythonlist.idex())

阅读(25)

本文主要为您介绍python返回列表元素索引,内容包括Pythonlist.idex(),如何在python列表中查找某个元素的索引,python如何返回一个list是第二个string出现在第一个string的index只能。Python List index()方法描述index() 函数用于从列表中找

资讯

python2.7爬虫项目(Python爬链接爬虫怎么写?)

阅读(24)

本文主要为您介绍python2.7爬虫项目,内容包括[Python2.7][爬虫][BeautifulSoup],如图,使用soup.find()查找到目,Python爬链接爬虫怎么写?,Python什么爬虫库好用?。python爬虫我们都知道是可以在网上任意搜索的脚本程序,主要是帮助我们再也不

资讯

python3.1(如何在安装pip3以及第三方python库)

阅读(21)

本文主要为您介绍python3.1,内容包括如何在安装pip3以及第三方python库,python网络编程教程在哪里可以下载?,关于python软件版本的问题python不同版本中,是不是有些。在安装pip3以及第三方python库(for Mac)环境OS:10.12.3 (16D32) macOS Sie

资讯

python导出app(python怎么把软件打包出来)

阅读(18)

本文主要为您介绍python导出app,内容包括python怎么把软件打包出来,python能做手机软件吗?想自己自学编程,目的是写个简单的计算爱问,如何用python抓取js生成的数据?。Python是纯粹的自由软件,具有丰富和强大的库。能够把用其他语言制作的各

资讯

pythoncc

阅读(18)

本文主要为您介绍pythoncc,内容包括Python和C++有何不同?,python与C的区别,python与C的区别。文件结构不同C++和Python在引用库的时候均需要将库import或者#include,但是在使用标准库的时候,Python不需要引入

资讯

pythondefif

阅读(2)

本文主要为您介绍pythondefif,内容包括pythondef最后if==true为什么说true没定义,求Python二叉树的几个算法求几个二叉树的method!1)给?,请大家看看这个python程序,哪里错了def hanoi(n。二叉树算法,网上是比较多的; 可能按照你的需求不是很

资讯

数据挖掘python等

阅读(2)

本文主要为您介绍数据挖掘python等,内容包括数据挖掘方向,Python中还需要学习哪些内容,学数据挖掘,爬虫,筛选,分析处理等这些怎么学起,python数据挖掘培训去哪好?。老男孩教育Python课程内容:阶段一:Python开发基础 Python开发基础课程内容包

资讯

pythontoexe

阅读(2)

本文主要为您介绍pythontoexe,内容包括如何将python文件生成exe,python程序怎么用py2exe打包(其他软件也可以)pyth,今天学Python,照着书写了个HelloWorld,不知道要怎?。1。下载并安装py2exe(确认你下载的py2exe版本 和你电脑上装的python版