类变量,实例变量

 1 class a():
 2     name="11"#类变量
 3     global name1#类中的全局变量
 4     name1 = "22"
 5     def __init__(self):
 6         print self.name #实例可以访问类变量
 7         self.name = "33"
 8     def do(self):
 9         print self.name
10         print a.name
11         print name1
12         #print name #报错,全局变量name
13         #未定义,name没有被global修饰,
14         #是类变量,而非全局变量,而在主程序
15         #中定义的变量,无需加global就是全局
16         #变量
17 aa =a()
18 aa.do()#打印33,11,22
19 a.name2="33"#类变量在类定义好后仍然能动态添加
20             #
21 print dir(a)#列出所有类变量和方法,不包括
22             #实例变量
23 print dir(aa)#列出所有类变量,实例变量和方法
24 def b():
25     print c#这不是定义,而是使用
26
27     d = 2#在函数中定义的变量都是局部变量
28          #作用范围仅仅是函数内部
29 c = 1#无需加global就是全局变量,可以
30         #直接被主程序中的方法使用
31 d = 1
32 b()
33 print (c,d)#打印(1,1)
时间: 2024-10-03 22:42:08

类变量,实例变量的相关文章

ruby中的实例变量和类变量

定义很简单:实例变量@开头,类变量@@开头 看了一些文章和书,目前了解到的(其实还是不太懂,先记着吧,错了再改): 类变量:可以在类方法和类实例方法中访问,也能被子类继承,并且子类修改之后,父类的值也会更改. 不同的子类都共享这个一个数值,包括子类的实例,都可以来修改这一个值.就理解成:不管自己还是子类的,什么函数都可以访问,也都可以改,改了之后也是大家共享. 实例变量:能被类方法访问,不能被继承,子类中赋值不会影响父类. 子类如果修改了,其实是不是重新定义了一下又赋了新的值? 这个其实更像应该

JAVA类与对象---实例变量与类变量的区别,实例方法和类方法的区别

实例变量 实例变量声明在一个类中,但在方法.构造方法和语句块之外: 当一个对象被实例化之后,每个实例变量的值就跟着确定: 实例变量在对象创建的时候创建,在对象被销毁的时候销毁: 实例变量的值应该至少被一个方法.构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息: 实例变量对于类中的方法.构造方法或者语句块是可见的.一般情况下应该把实例变量设为私有.通过使用访问修饰符可以使实例变量对子类可见 实例变量具有默认值.数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默

java 成员变量、局部变量、静态变量、类变量、非静态变量、实例变量、向前引用、非法向前引用、静态代码块、非静态代码块

①java类的成员变量有俩种: 一种是被static关键字修饰的变量,叫类变量或者静态变量 另一种没有static修饰,为成员变量 ②通俗点说: 类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享.静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期. 而实例变量取决于类的实例.每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期. 注意点: 1.JAVA中初始化

ruby中实例变量、类变量等等的区别和联系

ruby的变量有局部变量,全局变量,实例变量,类变量,常量. 1.局部变量 局部变量以一个小写字母开头或下划线开头 局部变量有局部作用域限制(比如一个block内),它的作用域起始于声明处,结束于该声明所在的块.方法定义.类/模块定义的结尾.大家在写代码时经常这样写: irb(main):001:0> i=123    ---------- 这里的i就是局部变量 =>123 irb(main):002:0> s="hi"   ---------- 这里的s就是局部变量

3.ruby语法基础,全部变量,实例变量,类变量,局部变量的使用和注意的要点

1.ruby的全局变量的概念和Java的全局变量的概念不同, ruby的全局变量是以$符号开头的,如果给全局变量的初始化值为nil会出现警告. 赋值给全局变量,这是ruby不推荐的,这样会使程序变得很难理解. 举例: #!/usr/bin/ruby $global_variable = 10 class Class1 def print_global puts "Global variable in Class1 is #$global_variable" end end class

成员变量(实例变量)&局部变量&静态变量(类变量)的区别

成员变量(实例变量)&局部变量区别: (1)作用域 成员变量:针对整个类有效. 局部变量:只在某个范围内有效.(一般指的就是方法,语句体内) (2)存储位置 成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在堆内存中. 局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中. 当方法调用完,或者语句结束后,就自动释放. (3)初始值 成员变量:有默认初始值. 局部变量:没有默认初始值,使用前必须赋值. 成员变量(实例变量)&静态变量(类变量)区别: A:调用方式 静态变

类变量和实例变量的区别

1.简介:       1.类变量也叫静态变量,也就是在变量前加了static 的变量:       2.实例变量也叫对象变量,即没加static 的变量: 区别在于:类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果:而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象: 例: 1 public class A{ 2 static int a = 0; //类变量 3 private int b = 0; //实力变量 4 } 5

实例变量和静态变量(或类变量static)

一个类通过使用运算符new可以创建多个不同的对象,这些对象将被分配不同的内存空间,准确的说法是:不同对象的实例变量将被分配不同的内存空间,如果类中有类变量,那么所有对象的这个类变量都被分配到同一处内存,改变其中一个对象的类变量会影响其他对象相应的类变量.也就是说,对象共享类变量. 类变量可以通过某个对象访问,也可以直接通过类名访问.

python——实例方法、静态方法、类方法、类变量和实例变量浅析

概述: 实例方法就是类的实例能够使用的方法. 静态方法是一种普通函数,就位于类定义的命名空间中,它不会对任何实例类型进行操作.使用装饰器@staticmethod定义静态方法.类对象和实例都可调用静态方法. 类方法是将类本身作为对象进行操作的方法.类方法使用@classmethod装饰器定义,其第一个参数是类,约定写为cls.类对象和实例都可以调用类方法. super用来执行父类中的函数. 类变量定义在类的定义之后,实例变量则是以为self.开头. 如何调用父类的构造函数:子类(派生类)并不会自

怎么区分类变量和实例变量?

# -*- coding: utf-8 -*- #python 27 #xiaodeng #怎么区分类变量和实例变量? #实例变量:在变量前面添加了self,就是实例变量,比如:self.name(完整定义为:属于实例私有,对实例变量的操作不会影响到其他的实例对象) #类变量:不添加前缀self,就是类变量(完整定义为:被该类的所有实例可以共享的变量,如果某个实例修改了该变量,这个变量可以被其他实例看到) class Person() : count = 0 def __init__(self,