首页 > 编程语言 >【python】类的专有方法

【python】类的专有方法

时间:2023-06-01 21:56:44浏览次数:47  
标签:__ name python self len 专有 str 方法

概述

方法, 描述 & 简单的调用
1 __init__ ( self [,args...] )
构造函数
简单的调用方法: obj = className(args)
2 __del__( self )
析构方法, 删除一个对象
简单的调用方法 : del obj
3 __repr__( self )
转化为供解释器读取的形式
简单的调用方法 : repr(obj)
4 __str__( self )
用于将值转化为适于人阅读的形式
简单的调用方法 : str(obj)
5 __cmp__ ( self, x )
对象比较
简单的调用方法 : cmp(obj, x)

__str__

概述:

  • 在python中方法名如果是__xxxx__()的,那么就有特殊的功能,因此叫做“魔法”方法
  • 当使用print输出对象的时候,只要自己定义了__str__(self)方法,那么就会打印从在这个方法中return的数据
  • __str__方法需要返回一个字符串,当做这个对象的描写
class Cat:
    """定义一个猫类"""
 
    def __init__(self, new_name, new_age):
        """在创建完对象之后 会自动调用, 它完成对象的初始化的功能"""
        self.name = new_name
        self.age = new_age 

    def __str__(self):
        """返回一个对象的描述信息"""
        return "名字是:%s , 年龄是:%d" %(self.name, self.age)
 
    def eat(self):
        print("%s在吃鱼...." %self.name)
 
    def drink(self):
        print("%s在喝可乐..." %self.name)
 
 
tom = Cat("汤姆", 30)
print(tom)

输出:

名字是:汤姆 , 年龄是:30

 

__len__

如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。要让 len() 函数工作正常,类必须提供一个特殊方法__len__(),它返回元素的个数。

class Students(object):
    def __init__(self, *args):
        self.names = args
    def __len__(self):
        return len(self.names)

ss = Students('Bob', 'Alice', 'Tim')
print(len(ss))

输出:

3

 

标签:__,name,python,self,len,专有,str,方法
From: https://www.cnblogs.com/sunbines/p/17450311.html

相关文章

  • ssh远端端口转发的一个问题和解决方法
    现在假设有主机local_A,主机remote_B,remote_B可以被外界访问,而local_A不行。这种情况下,我们可以通过ssh的远端端口转发的功能,来实现外界访问local_A的特定端口。在local_A上执行下面的命令为向外界暴露local_A的80端口,ssh-f-N-R8080:localhost:80zwl@remote_B-f表示在......
  • 处理器方法的参数
    代码在course3中1.处理器方法的参数  15处理器方法可以包含以下四类参数,这些参数会在系统调用时由系统自动赋值,即程序员可在方法内直接使用。➢ HttpServletRequest➢ HttpServletResponse➢ HttpSession➢ 用户提交的数据1.1 浏览器地址上带的参数  15//不指定请求方式,没......
  • 【十七】Python中的反射机制(4)
    【十七】Python中的反射机制(4)【1】什么是反射?反射指在程序运行过程中可以动态获取对象的信息。是通过字符串的形式,导入模块;通过字符串的形式,去模块寻找指定函数,并执行。利用字符串的形式去对象中操作成员,一种基于字符串的驱动。【2】Python反射中的内置函数(1)getattr......
  • Blender查看统计面数的方法
    1、底部状态栏右键2、在显示叠加层查看统计信息 3、 左上角显示 数据 ......
  • 【二十四】Python中super()详解及应用场景举例(1)
    【二十四】Python中super()详解及应用场景举例(1)【1】作用super也是一个类,是的。他不是一个方法也不是一个内置的关键字。classA:passprint(type(super(A)))#<class'super'>直接通过查看super的源码也可以看出它是一个类classsuper(object):"""......
  • 【二十三】Python 中 property() 函数及 @property 装饰器的使用(1)
    【二十三】Python中property()函数及@property装饰器的使用(1)【1】property应用场景在获取、设置和删除对象属性的时候,需要额外做一些工作。比如在游戏编程中,设置敌人死亡之后需要播放死亡动画。需要限制对象属性的设置和获取。比如用户年龄为只读,或者在设置用户......
  • Blender+kanzi 变换归原则和应用窗口的变换使用方法。
    1、选中物体,ctrl+a 弹出 应用窗口,选择应用旋转,它会把变换的窗口数值都归0.同理其他的也是一样。这个操作会把模型的轴心回归到blender画面的中心点儿。 如果不归0的话,导入到kanzi里面,模型就跟kanzi里的不一致。 2、移动物体到左上角,设置原点到几何中心。ctrl +a 全......
  • Python循环语句
    #循环语句#使用while循环打印出0-100的所有数字#循环的初始化条件num=1#当num<100时,会一直执行循环体whilenum<101:  print("num=",num)  #迭代语句  num+=1print("循环结束")print("---------------------------")#使用while遍历字符串str="TheageofM......
  • 官方提供的最新方法Open-data标签,使用这个标签可以不用用户授权直接获得头像和昵称
    <viewclass="header"><open-datatype="userAvatarUrl"class="img"></open-data><viewclass="account"><open-datatype="userNickName"lang="zh_CN"></......
  • 如何正确在多线程环境下更新UI_使用Platform的runLater方法
    如何正确在多线程环境下更新UI_使用Platform的runLater方法许多UI控件都提供了各种修改方法,比如我们可以修改Label上面的文本,进度条ProgressBar的进度。但我们必须保证修改UI的线程是JavaFX的UI线程,如果不是则会出现异常。那么我们如何在另一个线程中修改JavaFX的UI呢?......