当前位置:首页 » 编程语言 » python类变量访问

python类变量访问

发布时间: 2024-03-21 20:56:49

A. python类的动态方法是否可以访问到私有变量

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变量需要实例,而类的加载先于实例的创建,故在静态环境中,不可以访问非静态。

热点内容
ae加快缓存 发布:2024-11-28 23:50:34 浏览:341
java的版本号 发布:2024-11-28 23:48:18 浏览:99
sql存储过程区别 发布:2024-11-28 23:35:37 浏览:918
ms计算机需要什么配置 发布:2024-11-28 23:34:21 浏览:974
淘宝直接访问的流量 发布:2024-11-28 23:33:11 浏览:49
python发微博 发布:2024-11-28 23:29:31 浏览:725
sql清空命令 发布:2024-11-28 22:58:53 浏览:487
melpython 发布:2024-11-28 22:49:54 浏览:211
服务器浏览量什么意思 发布:2024-11-28 22:49:09 浏览:965
可不可以同时安装几个编译器 发布:2024-11-28 22:34:08 浏览:935