python 'str' object has no attribute 'append'怎么解决
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 'str' object has no attribute 'append'怎么解决相关的知识,希望对你有一定的参考价值。
nb=[]
for i in G.nodes():
a.append(G.degree(i))
total=0
for nb in G.neighbors(i):
total=total+G.degree(nb)
nb.append(total)//
这句话有错提示 in <module>
nb.append(total)
AttributeError: 'str' object has no attribute 'append'
哪里有问题?没有str类型啊?
原因:append会修改a本身,并且返回None。不能把返回值再赋值给a。
a=[]
b=[1,2,3,4]
a = a.append(b)
执行一次后发现a的类型变为了NoneType。
下次执行时就会出现如题所示的错误。
把a = a.append(b)改为a.append(b)后问题解决。
扩展资料
问题分析:问题出在这里:a = a.append(b)
要知道,append方法是没有返回值的。也就是说,上述语句第一次会成功执行,并且将a赋值为None;第二次调用就会报错,因为None是不能调.append方法的,修改方法也简单,a.append(b)就可以了,不要接返回值。
for i in G.nodes():
a.append(G.degree(i))
total=0
#for nb in G.neighbors(i): # 这里的nb和全局变量 nb = [] 同名了吧,改一下呢
for j in G.neighbors(i):
#total=total+G.degree(nb) #这里应该变成j吧
total += G.degree(j)
nb.append(total)本回答被提问者和网友采纳
python学习之__str__,__repr__
__str__(sekf) 类里没有定义这个方法,类的实例显示内存地址
__str__(self) 类里有定义这个方法,类的实例显示具体属性值
__repr__(self) 在解释器中有用
str函数或者print函数--->obj.__str__()
repr或者交互式解释器--->obj.__repr__()
如果__str__没有被定义,那么就会使用__repr__来代替输出
注意:这俩方法的返回值必须是字符串,否则抛出异常
# l=list(‘hello‘)
#
# print(l)
# file=open(‘test.txt‘,‘w‘)
# print(file)
class Foo:
def __init__(self,name,age):
self.name=name
self.age=age
def __str__(self):
return ‘名字是%s 年龄是%s‘ %(self.name,self.age)
#
# f1=Foo(‘egon‘,18)
# print(f1) #str(f1)--->f1.__str__()
#
# x=str(f1)
# print(x)
#
# y=f1.__str__()
# print(y)
class Foo:
def __init__(self,name,age):
self.name=name
self.age=age
# def __str__(self):
# return ‘折是str‘
def __repr__(self):
return ‘名字是%s 年龄是%s‘ %(self.name,self.age)
f1=Foo(‘egon‘,19)
#repr(f1)---->f1.__repr__()
print(f1) #str(f1)---》f1.__str__()------>f1.__repr__()
以上是关于python 'str' object has no attribute 'append'怎么解决的主要内容,如果未能解决你的问题,请参考以下文章
Python入门自学进阶-Web框架——27DjangoAdmin项目应用-数据记录操作2
Python入门自学进阶-Web框架——27DjangoAdmin项目应用-数据记录操作2