python访问类变量
不可以。
因为类方法属于类,调用非static变量需要实例,而类的加载先于实例的创建,故在静态环境中,不可以访问非静态。
⑵ python如何在一个类中访问另一个类的变量
1234def aaa(): s = 5 return sprint aaa()
或者:
12345def aaa(): global s s = 5aaa()print s
要在函数外部访问函数的内部变量,要么使用return将其返回到外部,要么用global定义为全局变量。推荐前一种。
def只是定义函数,你还没有调用和执行该函数。此外,要在控制台输出,你可以在函数内部写上print s+3 ,然后调用函数aaa()。
或者定义一个类:
1234class aaa: s = 5b = aaa #初始化一个类的实例print b.s #当然,你也可以直接使用aaa.s
⑶ python如何引用其他模块中类的方法中的变量
没法实现。
原因:
你的tmp,只是class a中的一个函数fun内的临时变量
所以无法直接被外部调用。
并且只有fun函数执行时才存在,函数结束时,就不存在了。
关于变量的作用范围,你可以参考:
【整理】Python中变量的作用域(variable scope)
想要可以被调用,可以试试:
改为:
#A.py
Class a()
tmp='123'
def fun()
。。。。。。
然后再去:
import A
print A.tmp
注意:
此时,tmp就是class a中的全局变量了。
⑷ python的子类怎么访问父类的成员变量
首先当子类继承了父类,因此子类(当继承方式为public或
protected
时)可以访问及改动父类的public成员,但访问或改不了私有成员和不可访问变量
⑸ Python中的类变量、实例变量、局部变量
类体内,所有函数外定义。
所有实例对象共享。
只有通过类名调用时才能修改,通过实例调用时无法修改。
假设某类变量名为“name",如果用该类的某个实例x来为name赋值:x.name = 'xxx',实质是为该实例新定义了一个变量name。且之后无法再通过该实例调用类变量name了。因为使用实例调用某名为“xxx”变量时,若该实例没有名为“xxx”的实例变量,则会去调用名为“xxx”的类变量;若有该名称的实例变量,则该实例无法再直接调用该名称对应的类变量。因此也不推荐通过实例来调用类变量。
即:通过类实例修改类变量的值时,实际是在定义新的与类变量同名的实例变量。
类体内,某函数(一般是__ init __ ())内定义。 “self.变量名”
因为是属于某个具体实例的,因此不能通过类名访问。
如果不在__ init __ () 中调用(该函数会在创建实例时自动调用一次),则只有调用该实例中定义目标实例变量的那个函数后,才能使用目标实例变量。因此最好在__ init __ () 中定义实例变量。
类体内,某函数内定义。
直接在函数内用“变量名=值”的方式进行定义。
函数执行完毕后,该局部变量即被销毁。