gpt4 book ai didi

python - Python 中的实例变量?不断出现分配错误

转载 作者:行者123 更新时间:2023-12-01 04:02:04 24 4
gpt4 key购买 nike

嗨,我正在尝试编写一个简单的程序来计算 DNA 中每个碱基的碱基含量。我在当前配置中不断收到分配错误“分配之前引用了 no_c”或“未定义 no_c”,并且我不知道如何解决该问题。

#!/usr/bin/python

#computing the atgc content of a DNA string


class Base_counter(object):
def __init__(self, DNA):
self.DNA = DNA
no_c = 0
no_a = 0
no_g= 0
no_t= 0

def c_counter(self):
for base in self.DNA:
if base == 'c':
no_c = no_c + 1
return no_c

def g_counter(self):
for base in self.DNA:
if base == 'g':
no_g+=1
return no_g

def a_counter(self):
for base in self.DNA:
if base == 'a':
no_a+=1
return no_a

def t_counter(self):
for base in self.DNA:
if base == 't':
no_a+=1
return no_t

def gc_percentage(self):
return no_c + no_g / len(self.DNA)

def at_percentage(self):
return no_a + no_t / len(self.DNA)

def g_percentage(self):
return no_g / len(self.DNA)

def a_percentage(self):
return no_a / len(self.DNA)

def t_percentage(self):
return no_t / len(self.DNA)

def c_percentage(self):
return no_c / len(self.DNA)

def main():
dna= 'gcgctat'
analyzer = Base_counter(dna)

print analyzer.no_c
print analyzer.c_counter()
#print analyzer.c_percentage()

if __name__ == '__main__':
main()

最佳答案

考虑你的代码

def __init__(self, DNA):
self.DNA = DNA
no_c = 0
no_a = 0
no_g= 0
no_t= 0

只有一行

    self.DNA = DNA

为此对象创建一个成员。其他行创建该函数的本地映射。因此,当稍后的调用尝试访问 no_c 时,解释器不会将其连接到您在这里可能的意思。

我猜您想将所有出现的 no_c 替换为 self.no_c

关于python - Python 中的实例变量?不断出现分配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36325531/

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