知行编程网知行编程网  2022-08-18 06:00 知行编程网 隐藏边栏  9 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于如何在Python中定义变量的相关知识,包括python创建变量,以及在某个事件过程中定义的变量是这些编程知识,希望对大家有参考作用。

如何在 Python 中定义变量

我们先来看看变量的分类。通常,我们谈论的是定义一个变量。如果没有特别说明,就是定义了一个全局变量。


全局变量

在模块内、在所有函数外面、在class外面,这就是全局变量


局部变量

在函数内、在class的方法内(未加self修饰),这就是局部变量


静态变量

在class内的,但不在class的方法内的,这就是静态变量


实例变量

在class的方法内的,用self修饰的变量,这就是实例变量

全局变量

全局变量是全局共享的,全局类和函数都可以访问,实现同步。它也可以被外部文件访问。

使用

全局变量使用的时候,需要用global显示声明。

一般情况下,如果函数直接调用全局变量而不更新,一般是没有问题的,但是如果有重新赋值,函数内部没有使用全局声明,就相当于在内部创建了一个同名的局部变量。变量优先于全局变量。

# coding:utf-8
_all = 'HelloWorld'    # 全局变量
_all_list = []    # 全局变量

def printall():
    global _all    # 这里需要用global显示声明
    print _all    # HelloWorld

局部变量

# coding:utf-8
def show():
    city = 'Beijing'    # 局部变量
    print city

静态变量

它可以称为类变量,可以通过类名直接访问,也可以通过实例名访问。该变量在类中全局共享,在实例之间全局共享。请参阅下面的示例

# coding:utf-8
class foo:
    all = 0   
    def add(self):
        foo.q += 1

instance01 = foo()   # 实例化对象1
instance02= foo()    # 实例化对象2
print instance01.all    # 执行结果为:0
print instance02.all    # 执行结果为:0
print foo.all    # 执行结果为:0

instance01.add()
print instance01.all    # 执行结果为:1
print instance02.all    # 执行结果为:1
print foo.all    # 执行结果为:1

instance02.add()
print instance01.all    # 执行结果为:2
print instance02.all    # 执行结果为:2
print foo.all    # 执行结果为:2

实例变量

对于模块来说,它们有自己的全局变量,可以被自己的内部类和函数使用和同步;对于函数或类方法,它们有自己的局部变量供自己内部使用;对于类来说,它们有静态变量,可以在内部和父子之间使用,具有继承关系,同步;但是实例之间各自的私有变量(局部变量)依赖于实例变量,实现了动态绑定和多态。

用self来修饰

# coding:utf-8
class foo:
    all = 0
    def __init__(self, name):
        self.name = name
    def add(self):
        foo.q += 1

instance01 = foo('hello')
instance02 = foo('hi')
print instance01.name    # hello
print instance02.name    # hi
print foo.name     # AttributeError:class foo has no attribute 'name'


总结

在整个代码组织过程中,一般有两个基本要求,私有和公共。

私有

不与他人共享,只与自己共享,如函数和方法的局部变量、实例变量

公有

需要在一定范围内共享才能达到同步的目的,比如模块内代码共享的全局变量,类和子类之间共享的静态变量。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享