当前位置: 首页 > 面试题库 >

列举面向对象中带双下划线的特殊方法,如:new、init

李昊苍
2023-03-14
本文向大家介绍列举面向对象中带双下划线的特殊方法,如:new、init相关面试题,主要包含被问及列举面向对象中带双下划线的特殊方法,如:new、init时的应答技巧和注意事项,需要的朋友参考一下
  • new:生成实例

  • init:生成实例的属性

  • call:实例对象加( )会执行def call:... 方法里边的内容。

    del:析构方法,当对象在内存中被释放时,自动触发执行。如当 del obj 或者应用程序运行完毕时,执行该方法里边的内容。

    enterexit:出现with语句,对象的enter被触发,有返回值则赋值给as声明的变量;with中代码块执行完毕时执行exit里边的内容。

    module:表示当前操作的对象在那个模块 obj.module class :表示当前操作的对象的类是什么 obj.class

    doc:类的描述信息,该描述信息无法被继承

    str:改变对象的字符串显示 print函数 --->obj.str() repr:改变对象的字符串显示 交互式解释器 --->obj.repr() format:自定制格式化字符串

    slots:一个类变量 用来限制实例可以添加的属性的数量和类型

    setitem,getitem,delitem__:

 

 

 

class Foo:
    def __init__(self,name):
        self.name=name

    def __getitem__(self, item):
        print(self.__dict__[item])

    def __setitem__(self, key, value):
        self.__dict__[key]=value
    def __delitem__(self, key):
        print('del obj[key]时,我执行')
        self.__dict__.pop(key)
    def __delattr__(self, item):
        print('del obj.key时,我执行')
        self.__dict__.pop(item)

f1=Foo('sb')
f1['age']=18
f1['age1']=19
del f1.age1
del f1['age']
f1['name']='alex'
print(f1.__dict__)

 

 

 

get():调用一个属性时,触发 set():为一个属性赋值时,触发 delete():采用del删除属性时,触发

setattr,delattr,getattr :

 

 类似资料:
  • 本文向大家介绍列举面向对象中的特殊成员以及应用场景相关面试题,主要包含被问及列举面向对象中的特殊成员以及应用场景时的应答技巧和注意事项,需要的朋友参考一下  

  • >>> class MyClass(): ... def __init__(self): ... self.__superprivate = "Hello" ... self._semiprivate = ", world!" ... >>> mc = MyClass() >>> print mc.__superprivate Traceback (most recen

  • 问题内容: 可以解释一下在Python中使用对象名称前加下划线的含义吗?另外,说明单首和双首下划线之间的区别。无论所讨论的对象是变量,函数,方法等,该含义是否保持不变? 问题答案: 单下划线 类中带有下划线的名称仅是为了向其他程序员表明该属性或方法旨在私有。但是,名称本身并没有做任何特别的事情。 引用PEP-8: :“内部使用”指标较弱。例如,不导入名称以下划线开头的对象。 双下划线(名称改写)

  • 本文向大家介绍Python3中_(下划线)和__(双下划线)的用途和区别,包括了Python3中_(下划线)和__(双下划线)的用途和区别的使用技巧和注意事项,需要的朋友参考一下 在看一些Python开源代码时,经常会看到以下划线或者双下划线开头的方法或者属性,到底它们有什么作用,又有什么样的区别呢?今天我们来总结一下(注:下文中的代码在Python3下测试通过) _ 的含义 在python的类中

  • 问题内容: 我正在尝试使JLabel带有下划线。我到处搜寻,但一无所获。即使在属性中,也没有为JLabel下划线的选项。我能做什么? 问题答案: 要么

  • 我们已经讨论了类/对象可以拥有像函数一样的方法,这些方法与函数的区别只是一个额外的self变量。现在我们来学习一个例子。 使用对象的方法 例11.2 使用对象的方法 #!/usr/bin/python # Filename: method.py classPerson:     defsayHi(self):         print'Hello, how are you?' p = Perso