gpt4 book ai didi

python - 为什么 Python 类不能识别静态变量

转载 作者:太空狗 更新时间:2023-10-29 17:40:23 25 4
gpt4 key购买 nike

我正在尝试用静态变量和方法(属性和行为)在 Python 中创建一个类

import numpy

class SimpleString():
popSize = 1000
displaySize = 5
alphatbet = "abcdefghijklmnopqrstuvwxyz "

def __init__(self):
pop = numpy.empty(popSize, object)
target = getTarget()
targetSize = len(target)

当代码运行时它说它不能弹出数组,因为 popSize 没有定义

最佳答案

您需要使用 self.popSizeSimpleString.popSize 访问它。当您在类中声明一个变量以便任何实例函数访问该变量时,您将需要使用 self 或类名(在本例中为 SimpleString)否则它会将函数中的任何变量视为该函数的局部变量。

selfSimpleString 的区别在于,使用 self 时,您对 popSize 所做的任何更改只会反射(reflect)在您的实例范围内,如果您创建另一个 SimpleString 实例,popSize 仍将是 1000。如果您使用 SimpleString.popSize,那么您对该变量所做的任何更改都将传播到该类的任何实例。

import numpy

class SimpleString():
popSize = 1000
displaySize = 5
alphatbet = "abcdefghijklmnopqrstuvwxyz "

def __init__(self):
pop = numpy.empty(self.popSize, object)
target = getTarget()
targetSize = len(target)

关于python - 为什么 Python 类不能识别静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19985758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com