IT序号网

python-3.x之Python 3.5 类变量

webabcd 2024年02月23日 编程语言 5 0

我是 python 新手,我在 Ubuntu 上使用 python 3.5。我对这个问题做了一些研究,我找到了很多答案。我正在做的事情看起来就像每个人都说我应该做的那样,但我仍然收到错误。

import csv 
import sys 
 
Class State(): 
    started = False 
 
    def waiting(self): 
        self.started 
        if self.started == False: 
            self.started = True 
        return 
 
    def buy_in(self, col): 
        if self.started == False: 
            return 
        else: 
            print(col) 
 
def read_file(file): 
    csv_list = csv.reader(file) 
    header = True 
 
    for row in csv_list: 
        if header: 
            header =  False 
            continue 
 
        col = float(row[5]) 
 
        if col < 0 : 
            State.waiting() 
        if col >= 0: 
            State.buy_in(col) 
    file.close() 
 
def main(filename): 
    file = open(filename) 
    read_file(file) 
 
def __name__ == '__main__': 
    main(sys.argv[1]) 

我只是想通过使用类和方法在 python 中创建一个伪 FSM。我只需要创建一个全局 bool 。我真的不明白我做错了什么。如果有人不介意给我一些清晰度,我将不胜感激。谢谢

澄清一下,我在 buy_in 方法的 if 语句中遇到了 NameError。

请您参考如下方法:

尝试:

class State(): 
 
    started = False 
 
    def waiting(self): 
        if self.started == False: 
            self.started = True 
        return 
 
    def buy_in(self, col): 
        if self.started == False: 
            return 
        else: 
            print(col) 

因为 started 是一个类变量,你需要在调用它时使用 self. 。它不是全局变量,因此您不需要全局调用。类中的每个方法还需要 self 作为参数。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!