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)就可以了,不要接返回值。

参考技术A nb=[]

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如何用字符串实例化类

Python入门自学进阶-Web框架——27DjangoAdmin项目应用-数据记录操作2

Python入门自学进阶-Web框架——27DjangoAdmin项目应用-数据记录操作2

python怎么判断是否数字

python 'str' object has no attribute 'append'怎么解决

python中str[i]<'0'的结果是?