Python 2.7 与实例变量使用相关的Python OOP
当我运行这段代码时,我得到以下错误Python 2.7 与实例变量使用相关的Python OOP,python-2.7,python-3.x,class,oop,instance-variables,Python 2.7,Python 3.x,Class,Oop,Instance Variables,当我运行这段代码时,我得到以下错误 class idk(): def __init__(self,name,age): self.name = name self.age = age def t(self): self.t = self.name + self.age def qrt(self): print(len(self.t)) abc = i
class idk():
def __init__(self,name,age):
self.name = name
self.age = age
def t(self):
self.t = self.name + self.age
def qrt(self):
print(len(self.t))
abc = idk('abc','19')
abc.qrt()
abc.name= 'aduhd'
abc.qrt()
回溯(最近一次呼叫最后一次):
文件“C:/Users/Prajval/Desktop/test.py”,第11行,在
abc.qrt()
文件“C:/Users/Prajval/Desktop/test.py”,第8行,在qrt中
打印(len(self.t))
TypeError:类型为“instancemethod”的对象没有len()
以下错误是什么意思:
TypeError:类型为“instancemethod”的对象没有len()
您忘记调用该方法,该方法与实例变量同名
t
Traceback (most recent call last):
File "C:/Users/Prajval/Desktop/test.py", line 11, in <module>
abc.qrt()
File "C:/Users/Prajval/Desktop/test.py", line 8, in qrt
print(len(self.t))
TypeError: object of type 'instancemethod' has no len()
通过将方法命名为与您正在玩火的实例变量相同的方法。当您第一次调用t
方法时,它将作为一个方法,并作为第一次调用后的字符串。不要给自己挖一个坑,让自己掉进去 最终代码
def qrt(self):
print(len(self.t()))
它给出错误,因为变量“t”不存在
class idk():
def __init__(self,name,age):
self.name = name
self.age = age
def t(self):
self.t1 = self.name + self.age
return self. t1 # was missing
def qrt(self):
print(len(self.t()))
abc = idk('abc','19')
abc.qrt()
abc.name= 'aduhd'
abc.qrt()
5
7
[Program finished]