当前位置: 代码迷 >> 综合 >> python 面向对象开发
  详细解决方案

python 面向对象开发

热度:17   发布时间:2024-02-06 01:04:54.0

类内方法:

1. __str__(self)方法:

  • 当使用print输出对象的时候,只要自己定义了__str__(self)方法,那么就会打印从在这个方法中return的数据
  • __str__方法需要返回一个字符串,当做这个对象的描写
未重写__str__方法 重写__str__方法
class Child2():def __init__(self,x):self.x=x# def __str__(self):#     return str(self.x * 2)
c1=Child2(1)
print(c1)
class Child2():def __init__(self,x):self.x=xdef __str__(self):return '重构__str__方法'
c1=Child2(1)
print(c1)
<__main__.Child2 object at 0x000001E167353B38> 重构__str__方法(使用print函数输出的是__str__返回的字符串)

2. __len__(self)方法:获得类的长度

要让 len() 函数工作正常,类必须提供一个特殊方法__len__(),它返回元素的个数。
未重写__len__方法 重写__len__方法
class Child2():def __init__(self,x):self.x=xdef __str__(self):return '重构__str__方法'# def __len__(self):#     return len(self.x)
c1=Child2("name")
print(len(c1))
class Child2():def __init__(self,x):self.x=xdef __str__(self):return '重构__str__方法'def __len__(self):return len(self.x)
c1=Child2("name")
print(len(c1))

TypeError: object of type 'Child2' has no len()

len()必须接收一个具体的实例化对象的属性,如果改成

len(c1.x)也能成功执行

4(“name”的长度)

 

  相关解决方案