python类变量访问
发布时间: 2024-03-21 20:56:49
classStudent(object):
def__init__(self,name,score):
self.__name=name;
self.__score=score;
self.__grade=3;##这是私有的属性
self.grade=3;##这是公有的。
defshow_grade(self):
print("%s__grade=%d"%(self.__name,self.__grade));
print("%sgrade=%d"%(self.__name,self.grade));
lisa=Student("lisa",88);
mona=Student("mona",82);
defset_grade(self,grade):
self.__grade=grade;##实测发现,此函数调用后__grade还是原值。__grade是私有变量。只能被class里的“静态方法”来修改。
self.grade=grade;##此函数调用后,grade的值被修改了。grade是公开变量。可以被动态方法来修改。
#print("%sgradeis%d"%(self.__name,self.grade));#在这里访问不到self.__name,所以把此句注释掉了。
Student.setGrade=set_grade;
lisa.setGrade(4);
lisa.show_grade();
结果如下:
lisa__grade=3
lisagrade=4
结论:
为类动态增加的方法,对类里私有属性没有读与写的权限。
B. python类的全局变量
全局变量,是一个相对的概念,对于整个程序而言,有可以在整个程序的任何代码块中都能被访问的变量,被称作全局变量。也有在类中能够被该类的任何代码块都能访问到的变量,也被称作全局变量。所以这里是一个相对的概念。代码定义的fly变量以及构造方法中的long变量都是全局变量,因为在long之前加了一个self的前缀,所有在整个类中,该long变量也是全局变量,至少在该类中的任何地方都可以访问到该变量。全局变量被当做类的一个属性来存储,所以可以说直接通过.的访问方式直接访问,访问如下:
class G():
fly = False #类中的全局变量
def __init__(self):
selg._age = 1 #加一个下划线,是一种不成文的规定,意思是该变量是私有变量
self.long = 2 #普通变量
self.__width = 3 #有两个下划线,是一种“真”私有变量
def run(self):
r = 4 #局部变量
print("I am running!.")
C. python的子类怎么访问父类的成员变量
首先当子类继承了父类,因此子类(当继承方式为public或
protected
时)可以访问及改动父类的public成员,但访问或改不了私有成员和不可访问变量
D. python 怎么查看数据类型
调试的时候可以看到,自己赋值的时候也可以
E. Python类方法可以访问实例变量吗
不可以。
因为类方法属于类,调用非static变量需要实例,而类的加载先于实例的创建,故在静态环境中,不可以访问非静态。
热点内容