1. python 类方法中变量如何使用
data=gdal.Open(file_path)
改成 data=gdal.Open(self.file_path)
__init__会初始化实例, self.file_path = fl 是把 fl 的值赋到 实例里面,你访问 file_path,这个根本没定义过,肯定报错。
抽空补一下基础吧,还是非常重要的。我现在也还在基础中挣扎
2. Python类变量和成员变量使用中有哪些注意事项
之前在用python开发一个项目,发现一个bug,就是同由一个类生成的两个实例之间的数据竟然会相互影响,这让我非常不解。后来联想到java的类有类变量也有实例变量,因此翻阅了相关资料,发现python也有类似的类变量和实例变量
!
3. Python类里的类变量和实例对象变量的区别
类变量也叫静态变量,也就是在变量前加了static
的变量;
实例变量也叫对象变量,即没加static
的变量;
区别在于:
类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;
例:
public
class
A{
static
int
a
=
0;
//类变量
private
int
b
=
0;
//实力变量
}
public
class
B{
public
void
main
(String[]
args){
A
a1
=
new
A();
A
a2
=
new
A();
a1.a
=
3;
//
等同于
A.a
=
3;
a1.b
=
4
;
System.out.println(a2.a);
//结果为3
//类变量是针对所有对象的,所以a1改变a,a2的a也改变
System.out.println(a2.b);
//结果为0
//实例只改变自身的,所以a1对象的b改变,不影响对象a2的b变量
}
}
4. Python类变量什么时候
python的类变量,顾名思义,类变量是指跟类的变量,而实例变量,指跟类的具体实例相关联的变量,具体体现为self.x 等。实际要注意的类变量和实例变量之间的关联。和类方法可以通过类也可以通过实例访问类似,类变量既可以通过实例也可以通过类来访问。
来看举例:
class Person:
name="aaa"
p1=Person()
p2=Person()
p1.name="bbb" #这里修改了p1.name的引用,使其不再指向类变量,而成为一个实例变量print p1.name # bbbprint p2.name # aaaprint Person.name # aaa
类变量就是供类使用的变量,实例变量就是供实例使用的.
5. Python 如何实现改变类中的一个变量使得类中与之相关的变量的值都更新
你对OO太不熟了,先学基础吧。你想写的是这个:
classMat():
def__init__(self,t):
self.temp=t
defpro(self):
returnself.temp
defmain():
a=Mat(5)
a.temp=10
print(a.pro())
if__name__=='__main__':
main()
6. python 类变量和实例变量的区别
类变量定义在类的定义之后,实例变量则是以为self.开头。例如:
class Foo(object):
val1= 'aa' #类变量
def __init__(self):
self.val2 = 'bb' #实例变量
val3= 'cc' #顺便设置的变量不知道属于什么变量
print self.__class__.val1 #实例对象访问类变量的另一种方法
实例对象可以访问类变量和实例变量
但是类对象却只能访问类变量,在实例方法中的变量都不能访问。
7. python 类变量会转换成实例变量吗
其实,从名字就能看出来,Python的类变量和实例变量的区别:
类变量:
是可在类的所有实例之间共享的值(也就是说,它们不是单独分配给每个实例的)。例如下例中,num_of_instance 就是类变量,用于跟踪存在着多少个Test 的实例。
实例变量:
实例化之后,每个实例单独拥有的变量。
[python] view plain
class Test(object):
num_of_instance = 0
def __init__(self, name):
self.name = name
Test.num_of_instance += 1
if __name__ == '__main__':
print Test.num_of_instance
t1 = Test('jack')
print Test.num_of_instance
t2 = Test('lucy')
print t1.name , t1.num_of_instance
print t2.name , t2.num_of_instance
结果如下:
>>>
0
1
jack 2
lucy 2
>>>
8. Python里类变量和实例变量的区别
其实,从名字就能看出来,Python的类变量和实例变量的区别:
类变量:
是可在类的所有实例之间共享的值(也就是说,它们不是单独分配给每个实例的)。例如下例中,num_of_instance 就是类变量,用于跟踪存在着多少个Test 的实例。
实例变量:
实例化之后,每个实例单独拥有的变量。
[python] view plain
class Test(object):
num_of_instance = 0
def __init__(self, name):
self.name = name
Test.num_of_instance += 1
if __name__ == '__main__':
print Test.num_of_instance
t1 = Test('jack')
print Test.num_of_instance
t2 = Test('lucy')
print t1.name , t1.num_of_instance
print t2.name , t2.num_of_instance
9. 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!.")
10. 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