Python 与实例变量的使用相关的 OOP
Python OOP related to usage of 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 = idk('abc','19')
abc.qrt()
abc.name= 'aduhd'
abc.qrt()
当我运行这段代码时,我得到以下错误
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()
以下错误是什么意思:
TypeError: object of type 'instancemethod' has no len()
您忘记调用该方法,该方法的名称与实例变量相同t
。
def qrt(self):
print(len(self.t()))
将方法命名为与实例变量相同的名称是在玩火。第一次调用 t
方法时,它将表现为方法,并且表现为字符串 post 首次调用。不要给自己挖坑掉进去。
最终代码,
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]
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()
当我运行这段代码时,我得到以下错误
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()
以下错误是什么意思:
TypeError: object of type 'instancemethod' has no len()
您忘记调用该方法,该方法的名称与实例变量相同t
。
def qrt(self):
print(len(self.t()))
将方法命名为与实例变量相同的名称是在玩火。第一次调用 t
方法时,它将表现为方法,并且表现为字符串 post 首次调用。不要给自己挖坑掉进去。
最终代码,
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]