当前位置:首页 » 编程语言 » 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变量需要实例,而类的加载先于实例的创建,故在静态环境中,不可以访问非静态。

热点内容
小米电视密码设置在哪里 发布:2024-05-17 04:06:12 浏览:425
java正则sql 发布:2024-05-17 04:05:52 浏览:619
51单片机c语言教程郭天祥 发布:2024-05-17 03:46:13 浏览:889
c语言程序特点 发布:2024-05-17 03:41:13 浏览:460
2014二级c语言考试大纲 发布:2024-05-17 03:23:20 浏览:417
到店系统源码 发布:2024-05-17 03:18:34 浏览:757
解编程解密 发布:2024-05-17 02:57:26 浏览:48
c语言掷骰子 发布:2024-05-17 02:11:05 浏览:489
eclipsepython调试工具 发布:2024-05-17 02:10:49 浏览:820
oracle创建表sql语句 发布:2024-05-17 02:06:38 浏览:252