类中的变量

类变量和类的属性:

如下代码所示:

x=1class 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方法。

原文地址:https://www.cnblogs.com/z18271397173/p/9126273.html

时间: 2024-10-13 01:04:28

类中的变量的相关文章

关于在事件代码中如何访问类中的变量

事件代码访问类中变量的3种方法. 在写事件代码的时候,常常需要引用主类中的变量.要访问这些变量是需要一些技巧的. 方法一: 加上final修饰符. 1 public class HelloWorld5 { 2 public static void main(String[] args) { 3 // 在变量前加上final,否则在事件代码里不能引用. 4 final String str = "孔肖寒"; 5 6 Display display = Display.getDefault

php 类中的变量的定义

php 如果在类中定义变量,在类的方法中调用时应该加上$this-> . class ClassName { private $a = 333; function __construct() { $this->a = 2222; } public function bbb($value='') { echo $this->a; } } $b = new className(); echo $b->bbb();

C++类中静态变量和普通变量的区别

静态变量: 1.静态变量会被编到程序的exe里面,从程序启动到结束,它一直存在: 2.静态变量的初始化值为0: 3.全局变量默认是静态变量: 4.在类中的函数变量前面加了static的也是静态变量,只不过被语言限定在只能在函数内部使用: 5.在有MFC对话框的程序了,如果一个变量和对话框绑定,那么该变量就不能声明为静态变量,函数也是一样的,因为声明为静态变量后不能随时接受对话框内的值,    主要是因为静态变量的值设置后是不能被修改的: 6.可以使用类名+静态成员名访问此静态成员,因为静态成员存

C#类中static变量用法分析

本文实例讲述了C#类中static变量用法.分享给大家供大家参考.具体分析如下: 先来看一段代码: 代码如下: using System; namespace Param { class Class1 { static int i = getNum(); int j = getNum(); static int num = 1; static int getNum() { return num; } [STAThread] static void Main(string[] args) { Co

在Java类中的变量

众所周知,在Java的类中有三种变量,那么这三种变量有什么区别呢? 1.局部变量:这是一种定义在方法内部中的变量.这就表示这种变量的作用域就是在该方法内部.其他方法中无法调用该变量. 2.成员变量:这是定义在类的内部但方法外的变量,在创建对象的时候可以实例化该对象.作用域是整个类内部.(包括所有方法) 3.类变量:这跟成员变量一样,是定义在类的内部方法体之外.但与之不同的是这是一种静态的变量,说白了就是必须要用static修饰.通常使用类名+变量名来使用,可以不用创建对象.大大提高了内存的使用效

Python 之面向对象:类和对象调用类中的变量和方法

面向对象的核心是对象,用对象来操控类里面的方法和变量,加上类还具有继承.封装.多态三大特性,提高了代码的复用性和规范性. 一.对象 调用类中的变量和方法 二 .类  调用类中的变量和方法 原文地址:https://www.cnblogs.com/tianpin/p/11283032.html

PHP接口中的静态变量、常量与类中静态变量、常量的区别

接口: 1 不能够定义静态变量(常量除外) 2 定义的常量 const YOUCONST = VALUE,不能在子类中覆盖,在子类中以 interfaceName::YOUCONST的方式调用 3 不能使用parent::YOUCONST的方式调用接口的常量 类: 1 const 变量可以使用parent::YOUCONST的方式,className::YOUCONST的方式在子类中访问 2 const定义的变量,在子类中可以被覆盖 3 当然在类中可以定义静态成员变量了 示例: <?phpint

C++类中成员变量的初始化总结

1. 普通的变量:      一般不考虑啥效率的情况下 可以在构造函数中进行赋值.考虑一下效率的可以再构造函数的初始化列表中进行. 1 class CA  2 {  3 public:  4      int data;  5 public:  6      CA();  7 };  8     9 CA::CA():data(0) //……#1……初始化列表方式 10 { 11     //data = 0;//……#1……赋值方式 12 }; 2.static 静态变量:       sta

Java 类中的变量和方法

1.类中定义的域变量可以被类中的所有方法访问. 2.方法中形式参数和定义的局部变量的作用域仅限于该方法中,局部变量在使用前必须进行赋值初始化. 3.如果局部变量和类中的域变量重名,则在方法中对同名变量改变的是局部变量. 4.在方法中如果要使用类的域变量,需要引入 this 关键字.