精华内容
下载资源
问答
  • 如果有此方法函数,通常作为类的第一个方法函数,有点像C++等语言里的构造函数。 class Ca: def __init__(self, v): # 注意前后各两个下划线 self.name = v def pr(self): print "a--->", self.name ia = Ca(...
  • python 之间构造函数的继承,调用

    千次阅读 2018-07-09 09:43:00
    对象是类的实例。 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。 方法重写...

    类定义:

    • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
    • 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
    • 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
    • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
    • 实例变量:定义在方法中的变量,只作用于当前实例的类。
    • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,素以Dog也是一个Animal。
    • 实例化:创建一个类的实例,类的具体对象。
    • 方法:类中定义的函数。
    • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

    运行环境: python3.5  

     

    python:类的继承调用简单代码:

     

    class gongneng(): #父类

        #好友信息发送

        def send_f(a):

            a = 1        return a

    class Example(gongneng):#子类    def send_f_1();        b = gongneng().send_f()        print(b)

     

    展开全文
  • 简述Python的构造函数和析构函数

    千次阅读 2019-06-02 19:36:08
    Python中,构造函数和析构函数同为中默认存在无初始内容函数(可写入内容),且都在会在对对象执行操作时调用,不同构造函数在创建对象后自动被调用,而析构函数在对象被销毁前(作为垃圾被收集)自动被调用...

    概述:

    Python中,构造函数(constructor)和析构函数(destructor)同为类中默认存在的无初始内容函数(可写入内容),且都在会在对对象执行操作时调用。

    不同的是构造函数在创建对象后自动被调用,而析构函数在对象被销毁前(作为垃圾被收集)自动被调用。两者有异曲同工之妙。

    可以说构造函数和析构函数就相当于两个哨兵,创建对象时,构造函数告诉计算机,我要申请实例化对象所需的内存,销毁对象时,析构函数告诉计算机,这些内存可以被回收并释放了。

    测试:

    1. 调用次序

    创建一个类并初始化构造函数__init__和析构函数__del__的内容,并且将析构函数放在最前定义,构造函数放在最后定义:

    class Person:
        def __del__(self):
            print("这里是析构函数")
        def say(self):
            print("这里是自定义方法")
        def __init__(self):
            print("这里是构造函数")
    per = Person()
    per.say()
    

    输出结果:

    这里是构造函数
    这里是自定义方法
    这里是析构函数
    

    结果显示最先被调用的是构造函数,其次是主动调用的自定义方法,最后是析构函数。而且构造函数和析构函数是自动被调用。

    (经评论指出,这里做注释:此处之所以会调用析构函数是因为该程序结束,对象即被销毁,所以调用了析构函数。具体请看下一篇:python中的垃圾回收机制

    1. 构造函数的作用

    构造函数默认无初始内容,在Python的类中默认存在且无需用户调用,它的最大作用是在创建对象时进行初始化工作

    定义一个类(利用构造函数初始化属性)

    class Person:
        def say(self):
            print("Hello, I am %s, %d years old"% (self.name, self.age))
        def __init__(self, name, age):  #参数是name和age,self不需要传参
            self.name = name
            self.age = age
    per1 = Person("Tom", 18)    #在创建对象时进行传参初始化
    per1.say()
    per2 = Person("Jerry", 16)
    per2.say()
    

    打印结果

    Hello, I am Tom, 18 years old
    Hello, I am Jerry, 16 years old
    

    在实例化类时,必须写上且写全构造函数中的参数(不包括self),以次来进行属性的初始化。

    附:

    • 构造函数可以利用参数列表进行初始化对象属性,但是析构函数只能有一个默认的self参数,不能自定义其他参数。

    • 构造函数和析构函数是自动调用的,但是也可以主动调用:使用className.__init__()

    • 析构函数一般无需写入内容,因为Python有垃圾回收机制,不需要手动释放。

    <初学小白,如有问题请指出>

    展开全文
  • 对象时, 对象会自动调用它的构造函数。实例化对象时是可以传入参数的,这些参数会自动传入__init__()方法中,可以通过重写这个方法来自定义对象的初始化操作。构造方法可以带有除self外的其它各种参数(关键字参数、...

    python中类的用法(继承、静态变量、类中函数自有变量、类中函数之间的调用)

    python中类的用法(继承、静态变量、类中函数自有变量、类中函数之间的调用

    类中构造函数的作用

    1. 构造函数的作用
      构造函数主要用来在创建对象时完成对对象属性的一些初始化等操作, 当创建
      对象时, 对象会自动调用它的构造函数。实例化对象时是可以传入参数的,这些参数会自动传入__init__()方法中,可以通过重写这个方法来自定义对象的初始化操作。构造方法可以带有除self外的其它各种参数(关键字参数、默认参数、用元组收集参数、用字典收集关键字参数等),可以在实例化类时,传入对应的实参。一般来说, 构造函数有以下三个方面
      的作用:
      ■ 给创建的对象建立一个标识符;
      ■ 为对象数据成员开辟内存空间;
      ■ 完成对象数据成员的初始化。
      类中的构造函数是在创建对象的同时就初始化给对象的,类中的其他全局变量或函数在引用时需要用对象.function形式引用。
    例1:class Myclass:
    
    i = 123
    
    def __init__(self,friend):
    
    self.friend = friend
    
    def func(self,myself): #带有参数的类方法
    
    self.myself = myself
    
    return self.myself +"say hello to " + self.friend
    
    use_class = Myclass("xiaoming")
    
    print("调用类的属性:",use_class.i)
    
    print("调用类的方法:", use_class.func("xiaohong"))
    
    输出结果:#调用类的属性: 123
    
    #调用类的方法: xiaohongsay hello to xiaoming
    ————————————————
    版权声明:本文为CSDN博主「掘金翻译计划」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_29735075/article/details/112841813
    
    1. 默认构造函数
      当用户没有显式的去定义构造函数时, 编译器会为类生成一个默认的构造函数,
      称为 “默认构造函数”, 默认构造函数不能完成对象数据成员的初始化, 只能给
      对象创建一标识符, 并为对象中的数据成员开辟一定的内存空间。

    2. 构造函数的特点
      无论是用户自定义的构造函数还是默认构造函数都主要有以下特点:
      ①. 在对象被创建时自动执行;
      ②. 构造函数的函数名与类名相同;
      ③. 没有返回值类型、也没有返回值;
      ④. 构造函数不能被显式调用。

    构造函数是以双下划线()开头的类函数。构造函数的名称是__init()。

    创建对象时,如果需要,构造函数可以接受参数。当创建没有构造函数的类时,Python会自动创建一个不执行任何操作的默认构造函数。

    每个类必须有一个构造函数,即使它只依赖于默认构造函数

    展开全文
  • 2,构造函数 3,析构函数 4,私有属性 5,继承 6,多继承 class 一个即是对一拥有相同属性对象抽象、蓝图、原型。在中定义了这些对象都具备属性(variables(data))、共同方法 ...

    学习内容:

    1,类

    2,构造函数

    3,析构函数

    4,私有属性

    5,继承

    6,多继承

     

    类    class                                            

    一个类即是对一类拥有相同属性的对象的抽象、蓝图、原型。在类中定义了这些对象的都具备的属性(variables(data))、共同的方法

     

    class school(object):            #创建类  
        def __init__(self,name,addr):     #类的初始化,self是必须存在,其他参数可自定义
            self.name = name          #参数定义
            self.addr = addr

     已经定义好一个类,那我们又如何执行呢?

    school = school("szu","nanshanqu")    #定义变量名,第一个school相当于定义初始化的self,szu赋给name,addr是nanshanqu

    这些初始化的属性,也称为静态属性。

     类的继承                                                                                      

    一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承

     

    class school(object):
        def __init__(self,name,addr):
            self.name = name
            self.addr = addr
            self.students = []
            self.staffs  = []
    
        def enroll(self,stu_obj):            #类中定义的功能,学校具有为学生注册的功能,和雇佣老师的功能。这都是school这个类的动态属性,所以从新定义了一个函数
            print("成功为\033[31;1m%s\033[0m注册" %stu_obj.name)
            self.students.append(stu_obj)
    
        def hire(self,staff_obj):
            print("成功雇佣\033[31;1m%s\033[0m" %staff_obj.name)
            self.staffs.append(staff_obj)
    
    
    class schoolmember(object):             
        def __init__(self,name,age,sex):
            self.name = name
            self.age = age
            self.sex = sex
        def tell(self):
            pass
    
    class student(schoolmember):                #类的继承,继承了schoolmember这个类
        def __init__(self,name,age,sex,stu_id,grade):
            super(student,self).__init__(name,age,sex)
            self.stu_id =stu_id
            self.grade = grade
        def pay_tution(self,amount):
            print("%s学生成功缴费%s" %(self.name,amount))
        def tell(self):
            print('''________info of student:%s_________
            name:%s
            age:%s
            sex:%s
            stu_id:%s
            grade:%s
            '''%(self.name,self.name,self.age,self.sex,self.stu_id,self.grade))
    
    class teacher(schoolmember):        #类的继承,继承了schoolmember这个类
        def __init__(self,name,age,sex,salary,course):
            super(teacher,self).__init__(name,age,sex)
            self.salary = salary
            self.course = course
    
        def tell(self):
            print('''________info of teacher:%s_________
               name:%s
               age:%s
               sex:%s
               salary:%s
               course:%s
               ''' % (self.name, self.name,self.age,self.sex,self.salary,self.course))
    
        def teach(self,course):
            print("%s老师正在上%s课程" %(self.name,self.course))
    
    
    
    s1 = student("小张",22,"",1001,"研1")
    s2 = student("小ma",22,"",1002,"研2")
    
    t1 = teacher("德玛西亚",42,"",100000, '语文')
    t2 = teacher("沃尔玛",32,"",60000, '数学')
    
    
    
    s1.tell()
    t1.tell()
    s1.pay_tution(10000)
    t1.teach('语文')
    
    school = school("szu","nanshangqu")
    school.hire(t1)
    school.enroll(s1)
    
                

    完整实现了面向对象编程,对于之后要是往学生或者老师这个类中加属性都非常方便

     作业:

     

    转载于:https://www.cnblogs.com/xiaomangxie/p/8548348.html

    展开全文
  • 类的构造函数/类的析构函数

    千次阅读 2014-08-20 12:28:47
    类的构造函数Python类的构造函数是__init__,它与其它函数的区别,首先是通过前面和后面带两个双下划线来跟别的函数名称进行区分。它的格式如下:def __init__(self, 参数列表):def是定义函数的关键字,__init__...
  • python的构造和析构函数为固定的名字。 构造函数---------------------...不像c++中那样构造函数和析构函数是类名字。   并且在python中这构造函数和析构函数可以省略。先看简单的例子: class Simple:   
  • python构造类魔法函数

    2019-07-27 09:02:40
    构造类魔法函数 1.__init__() 初始化魔法函数 触发时机:初始化对象时触发(不是实例化触发,但是和实例化在一个操作中) 参数:至少有一个self,接收对象 返回值:无 作用:初始化对象成员 注意:使用该方式...
  • Python类的内置函数

    2019-12-09 11:34:34
    Python类的内置函数步步为营构造函数 \__init__这是属性函数 \__setattr__迭代器 \__iter__ 步步为营 这段代码包含的东西比较杂,但是大部分的还是很有用,下面是对这里用到的知识点的总结和提炼,以代码为准绳,...
  • Python使用预定义__init__()作为构造函数,通过构造函数__init__()可以为Python对象提供参数, 基本语法规则如下: class <类名>: def __init__(self,<参数列表>) <语句块> 参数:第一个...
  • python类的构造和析构函数

    千次阅读 2012-02-02 11:53:22
    python的构造和析构函数为固定的名字。 构造函数--------------------- __init__...不像c++中那样构造函数和析构函数是类名字。   并且在python中这构造函数和析构函数可以省略。先看简单的例子: class Simple: de
  • 如果没有重写子类的构造函数,是可以直接使用父类的属性和方法的。 方法一 class A(object): def __init__(self): self.nameaa = 'aa' def funca(self): print('function a %s' % self.nameaa) class B(A): ...
  • 构造函数的作用就是让类的模板生成不同的对象,初始化对象的属性。在类中定义的如下函数: def __init__(self): pass 构造函数的调用是自动进行的,当你去实例化一个类时,Python会自动地帮助你去调用构造函数。 ...
  • 一、C#继承中的构造函数 public class Animal:Creature { public Animal():this("马")//注意:这里是实际参数,不是对参数的定义。 { Console.WriteLine("这是Animal"); } public ...
  • 用于初始化类的内容部状态,Python提供的构造函数式 __init__(); 也就是当该类被实例化的时候就会执行该函数。那么我们就可以把要先初始化的属性放到这个函数里面。如下程序: __init__()方法是可选的,如果...
  • 在下面例子中,我们分别创建(并覆盖) __init__()和__del__()构造器及解构函数,然后,初始化并给同样对象很多别名。id()内建函数可用来确定引用同一对象三个别名。最后一步是使用del语句清除所有别名,...
  • python的构造函数是__init__()函数。用于类的实例化,当一个对象被创建时,就会立刻被调用,有且只能执行一次。 class A(): def __init__(self): print("A1") 执行:a=A() 输出: A1 1.构造函数可以不写,不写...
  • python构造函数

    千次阅读 2018-09-24 16:46:19
    # 面向对象 # 有意义的面向对象的代码 # 类 = 面向对象 # 实例化 # 类的最基本的作用:封装代码 # 类和对象 类就像是一个模板,可以产生很多对象 class Student(): ... # 它是构造函数 print('stud...
  • #构造函数、实例方法、方法、静态方法 class Person: def __init__(self,name,age): self.name=name self.age=age print('我是构造函数,实例化对象时候会自动执行,传入参数需要与我保持一致') ...
  • 看到构造函数和析构函数并运行书上的简单程序加深印象时,频频报错。What's wrong!!!这一看就是个简单程序,没问题吧。一个类。类中进行初始化。可以传递两个参数,分别是复数的实部和虚部。self不能省略,代表...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,706
精华内容 682
关键字:

python类的构造函数是

python 订阅