类的特殊成员特殊方法__init__;__call__;__del__....

1.  类;  后面加()   ===》实例化一个对象,并且执行__init__方法

2. 对象;后面加()  ===》执行__call__方法

class Foo:

    def __init__(self):
        print("init")

    def __call__(self, *args, **kwargs):
        print("call")
        return 1

r = Foo()  # 实例化一个对象,执行__init__方法
r()  # 在一个对象后面加括号,执行__call__方法

ret = Foo()() #类Foo()表明实例化一个对象,并且执行__init__方法,后面再()表明执行__call__方法,__call__方法有个返回值1
print(ret)

原文地址:https://www.cnblogs.com/xuwenwei/p/9787044.html

时间: 2024-10-03 11:00:27

类的特殊成员特殊方法__init__;__call__;__del__....的相关文章

MFC 调用默认对话框类对象成员和方法

这个功能其实并不常用,然而在多线程和回调函数中要调用默认对话框类的对象成员或方法还是可能要用到的,所以做下记录. 首先声明一个全局变量用以存储默认对话框类对象指针: LPVOID pParam;//对话框对象指针 在默认对话框类的初始化函数中给该指针进行赋值: pParam = (void *)this; 在需要调用默认对话框类对象成员或方法处,通过如下代码实现调用: CPanoramicPlayerDlg *dlg = (CPanoramicPlayerDlg *)lpParam;//其中CP

14.12.2类的特殊成员2

类的特殊成员 __add__方法 #两个对象相加时,会自动执行第一个对象的__add__方法,并且将第二个对象当做参数传递进入 class foo: def __init__(self,name,age): self.name=name self.age=age def __add__(self, other): #return 123 #return self.age+other.age return foo("oo",20) # def __del__(self): # print

14.12.3类的特殊成员3

类的特殊成员 __iter__方法 class foo: def __init__(self,name,age): self.name=name self.age=age def __iter__(self): return iter([1,2,3,4]) li=foo("jiaxin",8) # 如果类中有__iter__方法,对象就是可迭代对象 # 对象.__iter__()的返回值:迭代器 # for 循环:迭代器,next # for 循环,可迭代对象,先获取对象的__iter

C#派生类中使用基类protected成员的方法

我们知道C#中通过继承可以使一个具有公共数据和方法的基类被广泛应用从而减少代码量,这样派生类会具有基类中所有成员(除构造器等),我们理所当然可以通过派生类实例来使用基类的成员.那么当基类成员被protected修饰时,我们应该怎么在派生类中使用基类成员呢,下面将介绍使用方法. 首先我们贴一段错误的使用代码: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Console.ReadLine(); 6 7 } 8 } 9 pub

Java如何在静态方法中访问类的实例成员(没附加static关键字的字段或方法)

Java如何在静态方法中访问类的实例成员(没附加static关键字的字段或方法)?? static修饰的在加载时是先于非静态的加载,也就是如果在static中如果调用了非静态的方法或变量会报错,因为此时非静态的方法和变量还不存在(可以这样理解) . 在静态方法中访问类的实例变量需首先进行类的实例化,除了加static修饰,还可以先new创建一个对象,通过对象去调用成员方法和变量,如new A().test(). 例如: package 静态方法访问实例变量; public class Test{

面向对象【day08】:类的特殊成员-类的起源与metaclass

本节内容 类的特殊成员方法 类的起源于metaclass 一.类的特殊成员方法 一.概述 前面我们讲了类的方法,有普通方法,就是我们自己定义的方法,还有静态方法,类方法,属性方法,其实类还有另外一种方法,叫做类的特殊成员方法 1 __doc__ 说明:表示类的描述信息 1 2 3 4 5 6 7 8 9 10 11 class Dog(object):     """此类是形容Dog这个类"""    #类的描述信息     def __init

类的特殊成员

1.__doc__ 表示类的描述信息 class Food(object): "定义一个食物类" pass print(Food.__doc__) #输出 定义一个食物类 2.__module__ 和 __class__ __module__ 表示当前操作对象在哪个模块 __class__    表示当前操作对象的类是什么 class A(object): def __init__(self, name): self.name = name from local.obj import

python-面向对象(三)——类的特殊成员

类的特殊成员 1. __doc__     表示类的描述信息 class Foo: """ 描述类信息,这是用于看片的神奇 """ def func(self): pass print Foo.__doc__ ============== 描述类信息,这是用于看片的神奇 2. __module__ 和  __class__  __module__ 表示当前操作的对象在哪个模块    __class__     表示当前操作的对象的类是什么 3. 

14.12.4类的特殊成员4

类的特殊成员 metaclass # 在Python中,一切事物都是对象. **** # class foo: # pass # obj=foo() # obj是foo的对象 # foo类是type的对象 # 只要写类,默认都继承object类 #类都是type类的对象 class myType(type): def __init__(self,*args,**kwargs): print("mytype") pass def __call__(self, *args, **kwarg