python 中关于 类变量, 实例变量, 静态方法,类方法,全局变量,局部变量的理解

Posted jvincent

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 中关于 类变量, 实例变量, 静态方法,类方法,全局变量,局部变量的理解相关的知识,希望对你有一定的参考价值。

一个程序帮助你理解类中的一些基本的概念!

 

a = 1 #(全局变量)


def say():
    print(调用了全局方法)


class People():
    global a
    a = 100 #类中定义一个全局变量, 因此不再是类的数据属性
    b = 123 # 类中的数据属性,也是一种变量

    def __init__(self): 实例初始化
        self.a = 10000


    @classmethod
    def talk(cls): # 静态方法,用类名调用函数属性
        print(这里是类方法)

    def say(self): 函数属性
        print(调用了类里面的方法)

    @staticmethod
    def tool(): # 类的工具包,实例和类都可以调用
        print(来自类的工具包)

    def do(self):
        say() 外部函数的调用
        self.say() 实例函数的调用
        print(a = , a) 全局变量
        print(self.a = , self.a) 实例的数据属性
        print(self.b = , self.b) 实例调用类的数据属性
        print(People.b = , People.b) # 类调用数据属性
p = People()
p.do()

〉〉〉
调用了全局方法
调用了类里面的方法
a =  100
self.a =  10000
self.b =  123
People.b =  123

实际上类中的变量还是很灵活的,还可以形参角度,实例化时给予不同的数据结构 --- 数,字符串,BOOL值,函数,类的实例化等

我这里还没总结好

以上是关于python 中关于 类变量, 实例变量, 静态方法,类方法,全局变量,局部变量的理解的主要内容,如果未能解决你的问题,请参考以下文章

Java中的静态和枚举

java中关于null的一些理解

python的静态成员变量实例成员变量静态方法类方法实例方法

java中关于对象初始化的问题

新手请教C#中关于静态函数和静态变量

c++中关于私有静态变量的问题