1. 类的定义,属性和方法概念
  2. 方法中self的作用和意义
  3. 初始化( __init__ ) 和 析构方法( __del__ )

类的定义

class 类名

实例

实例名 = 类名()

一个“实例”的“特征”,就是“属性”

私有属性

在python中有两种私有属性,分别是在属性前加  一个下换线(_) 和 两个下划线(__)

一个下滑线外部可以直接访问(用运算符“.”,点不出来,在知道有的情况下,可以直接使用)

两个下划线外部不可以直接访问(实例名._类名__私有属性、这样调用、用dir(实例名)可以查看所有属性和方法)

类是一个独立存放变量(属性/方法)的空间

实例也是一个独立存放变量的空间,不同实例之间的空间互相不可见

运算符“.”调用类的属性或方法

“类”与“实例”之间的关系

类是一类事物的抽象,不是真实存在的,描绘了该类事物的共性

实例是某类事物的具体个体,是该类事物的具体表现,它是真实存在的

方法

“方法”就是封装在类里的一种特殊的函数

通常,将默认会传入的那个参数命名为self,用来表示调用这个方法的实例对象本身

方法总是定义在类中的,但是却叫“实例方法”,因为它表示该类所有实例所共有的行为

初始化(__init__)

在Python中有很多以双下划线开头且以双下划线结尾的固定方法,他们会在特定的时机被触发执行

__init__ 就是其中之一,它会在实例化之后自动被调用,以完成实例的初始化

__init__ 的参数传递过程

实例化时,产生一个类的实例  -->  Python自动调用 实例.__init__(参数)  -->  转换为 类.__init__(实例,参数)

析构(__del__)

"__del__”就是一个析构函数了,当使用del 删除对象时,会调用他本身的析构函数

当没有一个变量指向某个对象的时候,Python会自动销毁这个对象,以便回收内存空间

del 关键字,可以删除一个变量的指向

Python类定义、属性、初始化和析构的更多相关文章

  1. python 类定义 继承

    0 前言 系统:win7 64bit IDE : python(x,y) 2.7.6.1 IDE集成的解释器:Python 2.7.6 (default, Nov 10 2013, 19:24:18) ...

  2. python类:属性

    http://blog.csdn.net/pipisorry/article/details/50708616 Python 中的 property 属性 Python中有个很赞的概念,叫做prope ...

  3. python类定义

    在我的收藏中有一篇特别详细的类讲解 此处部分内容引自:http://blog.sina.com.cn/s/blog_59b6af690101bfem.html class myclass: 'this ...

  4. Python类定义和类继承详解

    类实例化后,可以使用其属性,实际上,创建一个实例之后,可以通过类名访问其属性,如果直接使用类名修改其属性,那么直接影响已经实例化的对象. 类的私有属性: __private_attrs 两个下划线开头 ...

  5. python类定义的讲解

    python是怎么定义类的,看了下面的文章大家就会了,不用多说,开始学习. 一.类定义: 复制代码代码如下: class <类名>: <语句> 类实例化后,可以使用其属性,实际 ...

  6. python类定义与c#的一些区别

    c#中可以定义一个空类,但是python中定义空类需要加pass class EmptyClass(object): pass python的lei是多继承   python子类继承了基类,如果子类也 ...

  7. Python 类的属性再解

    #类的属性 class A(): #定义一个类的属性,类似于c++中的静态变量 num=0 def __init__(self): #实例对象属性定义赋值 self.name = "hha& ...

  8. Python 类的属性和实例属性 Python 的动态语言

    #定义一下类, 含有类属性 aaa, >>> class Aa: ... aaa = 10... #对类 Aa实例化出一个实例 a1>>> a1 = Aa() &g ...

  9. Java在的时候,类定义HashSet初始化方法

    Java非常多的时间,应使用HashSet搜索功能,类的则定义,是HashSet类型的,我们定义数据成员之后,不好直接调用add函数来实现初始化,这个时候怎么办? 我们能够这样来做: public s ...

随机推荐

  1. 【转载】作为Android开发者,你真的熟悉Activity吗?

    学过android的人都知道,activity是最常用的四大组件之一,但你真的了解透彻activity了吗?接下来,本人将从activity的正常和异常生命周期.启动模式.IntentFilter匹配 ...

  2. alluxio 安装记录及相关信息

    最近要尝试探究一下alluxio相关的知识,本博客进行对alluxio的安装过程进行备忘: 单例安装过程: https://docs.alluxio.io/os/user/stable/cn/cont ...

  3. docker 网络设置概述

    docker有3种网络: 使用命令docker network ls,执行结果如下. NETWORK ID NAME DRIVER SCOPE 82e8822065c7 bridge bridge l ...

  4. IDEA 第三方jar包 使用

    1,加入lib包中,在pom中添加 <dependency> <groupId>com.sss</groupId> <artifactId>包名< ...

  5. LRU hashMap(拉链) + 双向链表 java实现

    //基于 hash (拉链法) + 双向链表,LRUcache //若改为开放寻址,线性探测法能更好使用cpuCache public class LRU { private class Node { ...

  6. golang中的viper示例

    这是第二次实操viper了, 年纪大了就多练练,才能记住. http://go.coder55.com/article/6589 https://github.com/spf13/viper pack ...

  7. 第05组 Beta冲刺(3/4)

    第05组 Beta冲刺(3/4) 队名:天码行空 组长博客连接 作业博客连接 团队燃尽图(共享): GitHub当日代码/文档签入记录展示(共享): 组员情况: 组员1:卢欢(组长) 过去两天完成了哪 ...

  8. 2. 词法"陷阱"

    1. 练习2-1 某些编译器允许嵌套注释.请写一个程序测试,要求:无论是对允许嵌套注释的编译器,还是对不允许嵌套注释的编译器,该程序都能正常通过编译,但是这两者情况下执行的结果却不相同. #inclu ...

  9. UmiJS 目录及约定

    在文件和目录的组织上,umi 更倾向于选择约定的方式. 一个复杂应用的目录结构如下: . ├── dist/ // 默认的 build 输出目录 ├── mock/ // mock 文件所在目录,基于 ...

  10. 对systemV和systemd的简单理解(服务方面)

    在CentOS7(RHEL7)以后,服务从原来的由systemV管理机制升级到了systemd. 在sysV中,所有的服务脚本都放在/etc/rc.d/init.d/中,可以使用/etc/rc.d/i ...