类中的变量

Posted 笃行1995

tags:

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

类变量和类的属性:
如下代码所示:
x=1
class
Test: x = 1
def __init__(self): self.y
= 2

def create():
j=1

x即为类Test的变量,各个Test的实例中的x都是一样的,而y为Test的属性,每个Test实例的y都是独立的。

类中的变量:

a.全局变量:在模块内,在所有函数外又在class外面,就是全局变量。就如class 外的x

b.局部变量:在函数内,在函数内或在class的方法内(未用self修饰的),这是局部变量。在上面就是变量j

c.静态变量:在class内,但是不在class的方内。就是上面的class中的x

d.实例变量:在class的方法内,用self修饰过的,就是self.y

 

类和对象的命名空间

这里需要简单了解一下python的命名空间。

python中,命名空间是名字到对象映射的结合,不同命名空间中的名字是没有关联的。这种映射的实现有点类似于python中的字典

根据上下文的不同,可以通过"."或者是直接访问到命名空间中的名字。举个例子

class MyClass(object):
    # 在类的命名空间内,不需要用"."访问
    class_var = 1
    
    def __init__(self, i_var):
        self.i_var = i_var

## 不在类的命名空间内,需要用"."访问
MyClass.class_var
## 1

python中,类和对象都有自己的命名空间,可以通过MyClass.__dict__是输出类的数据属性和函数属性(以字典的形式)

a = MyClass(3)

 

a.__dict__

是输出对象的属性 。

关键点:类无法访问对象实例的属性,但对象可以访问类属性(类变量)

 

关于初始化__init__()方法:


 

 

l1=[1,2,3]
l1.append(4)
print(l1)
l=list([3,4,5,6])
l.append(11)
print(l)

 

结果:

[1, 2, 3, 4]
[3, 4, 5, 6, 11]

l1直接定义,默认append方法。而按照实例的模式list()。对象l也默认append方法。

 

以上是关于类中的变量的主要内容,如果未能解决你的问题,请参考以下文章

从片段类中的对话框添加项目到recyclerview。

如何禁用在android片段类中按下的后退按钮

片段类中的 View.findViewById

在片段java类中使用“this”和getLastSignedInAccount时出现错误[重复]

如何让片段中的多个视图调用片段类中声明的相同 onClick 函数?

每次调用 Firebase Analytic 的 getInstance() 与将实例存储为 Application 类中的静态变量