44、class类:
 
                   一、类定义的一般形式:
                           1、简单的形式:实例化对象没有自己独有的数据属性。
>>> class fistclass():
...     data1 = 'hello world' ### ==>这是类的数据属性或类成员属性。
...     def printdata(self): ###==>这是类的方法,而且这里至少有一个参数self!!!
...             print('nihao%s' %self.data1)
...
>>> class1 = fistclass() ##==>类实例化
>>> class1.
class1.__class__(         class1.__format__(        class1.__le__(            class1.__reduce_ex__(     class1.__weakref__
class1.__delattr__(       class1.__ge__(            class1.__lt__(            class1.__repr__(          class1.data1
class1.__dict__           class1.__getattribute__(  class1.__module__         class1.__setattr__(       class1.printdata(
class1.__dir__(           class1.__gt__(            class1.__ne__(            class1.__sizeof__(       
class1.__doc__            class1.__hash__(          class1.__new__(           class1.__str__(           
class1.__eq__(            class1.__init__(          class1.__reduce__(        class1.__subclasshook__( 
>>> class1.data1 ##类数据属性调用
'hello world'
>>> class1.printdata() ##类的方法的调用
nihaohello world
        2、定义对象独有的数据属性:
          >>> class seclass():
...     data1 = 'hello seclass'
...     def setdata(self,x):
...             self.str1 = x
...     def printdata(self):
...             print(self.str1)
...
>>> ins1 = seclass()
>>> ins1.
ins1.__class__(         ins1.__format__(        ins1.__le__(            ins1.__reduce_ex__(     ins1.__weakref__
ins1.__delattr__(       ins1.__ge__(            ins1.__lt__(            ins1.__repr__(          ins1.data1
ins1.__dict__           ins1.__getattribute__(  ins1.__module__         ins1.__setattr__(       ins1.printdata(
ins1.__dir__(           ins1.__gt__(            ins1.__ne__(            ins1.__sizeof__(        ins1.setdata(
ins1.__doc__            ins1.__hash__(          ins1.__new__(           ins1.__str__(           
ins1.__eq__(            ins1.__init__(          ins1.__reduce__(        ins1.__subclasshook__( 
>>> ins1.data1
'hello seclass'
          >>> ins1.setdata('abc')
>>> ins1.printdata()
abc
>>> ins2 = seclass()
>>> ins2.data1
'hello seclass'
>>> ins2.setdata('xy')
>>> ins2.printdata()
xy
   3、__init__()方法:
     创建实例时,python会自动调用类中的__init__方法,以隐性的为实例提供属性。
     __init__称之为构造器。
     如果类中没有定义__init__方法,则实例之初仅仅是创建一个简单的名称空间。
     >>> class thirdclass():
...     data3 = 'hello thirdclass'
...     def __init__(self,who):
...             self.name = who
...
>>> ins3 = thirdclass('lucy')
>>> ins3.
ins3.__class__(         ins3.__format__(        ins3.__le__(            ins3.__reduce_ex__(     ins3.__weakref__
ins3.__delattr__(       ins3.__ge__(            ins3.__lt__(            ins3.__repr__(          ins3.data3
ins3.__dict__           ins3.__getattribute__(  ins3.__module__         ins3.__setattr__(       ins3.name
ins3.__dir__(           ins3.__gt__(            ins3.__ne__(            ins3.__sizeof__(       
ins3.__doc__            ins3.__hash__(          ins3.__new__(           ins3.__str__(           
ins3.__eq__(            ins3.__init__(          ins3.__reduce__(        ins3.__subclasshook__( 
>>> ins3.data3
'hello thirdclass'
>>> ins3.name
'lucy'
   4、__dict__:
     >>> ins3.__dict__ 实例的属性
{'name': 'lucy'}
>>> thirdclass.__dict__ 类的属性。
mappingproxy({'data3': 'hello thirdclass', '__init__': <function thirdclass.__init__ at 0x7f8e0a440ea0>, '__dict__': <attribute '__dict__' of 'thirdclass' objects>, '__module__': '__main__', '__doc__': None, '__weakref__': <attribute '__weakref__' of 'thirdclass' objects>})
   5、类中的可用变量:
     >>> class c1():
...     var1 = 'hello c1' ###==>类的静态变量!!!!
...     def __init__(self,who):
...             self.insdata = who ###==>实例变量。
...             self.name = '123' ###==>局部变量:只属于这个方法。
...
>>> ins1 = c1(12)
>>> ins1.
ins1.__class__(         ins1.__format__(        ins1.__le__(            ins1.__reduce_ex__(     ins1.__weakref__
ins1.__delattr__(       ins1.__ge__(            ins1.__lt__(            ins1.__repr__(          ins1.insdata
ins1.__dict__           ins1.__getattribute__(  ins1.__module__         ins1.__setattr__(       ins1.name
ins1.__dir__(           ins1.__gt__(            ins1.__ne__(            ins1.__sizeof__(        ins1.var1
ins1.__doc__            ins1.__hash__(          ins1.__new__(           ins1.__str__(           
ins1.__eq__(            ins1.__init__(          ins1.__reduce__(        ins1.__subclasshook__( 
>>> ins1.name
'123'
>>> ins1.var1
'hello c1'
>>> ins1.insdata
12
   6、类的继承:python允许多重继承,属性搜索方法:从左往右,从下往上。
     >>> class PClass(object):
...     gender = 'male'
...     def __init__(self,who):
...             self.name = who
...
>>> class CClass(PClass):
...     def displayinfo(self):
...             print(self.gender,self.name)
...
>>> ins1 = CClass('lucy')
>>> ins1.
ins1.__class__(         ins1.__format__(        ins1.__le__(            ins1.__reduce_ex__(     ins1.__weakref__
ins1.__delattr__(       ins1.__ge__(            ins1.__lt__(            ins1.__repr__(          ins1.displayinfo(
ins1.__dict__           ins1.__getattribute__(  ins1.__module__         ins1.__setattr__(       ins1.gender
ins1.__dir__(           ins1.__gt__(            ins1.__ne__(            ins1.__sizeof__(        ins1.name
ins1.__doc__            ins1.__hash__(          ins1.__new__(           ins1.__str__(           
ins1.__eq__(            ins1.__init__(          ins1.__reduce__(        ins1.__subclasshook__( 
>>> ins1.gender
'male'
>>> ins1.name
'lucy'
>>> ins1.displayinfo()
male lucy

python类class基础的更多相关文章

  1. Python类的基础入门知识

    http://www.codesky.net/article/201003/122860.html首先第一点,你会发现Python Class的定义中有一个括号,这是体现继承的地方. Java用ext ...

  2. Python进阶----线程基础,开启线程的方式(类和函数),线程VS进程,线程的方法,守护线程,详解互斥锁,递归锁,信号量

    Python进阶----线程基础,开启线程的方式(类和函数),线程VS进程,线程的方法,守护线程,详解互斥锁,递归锁,信号量 一丶线程的理论知识 什么是线程:    1.线程是一堆指令,是操作系统调度 ...

  3. 图解Python 【第五篇】:面向对象-类-初级基础篇

    由于类的内容比较多,分为类-初级基础篇和类-进阶篇 类的内容总览图: 本节主要讲基础和面向对象的特性 本节内容一览图: 前言总结介绍: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 ...

  4. Python类中super()和__init__()的关系

    Python类中super()和__init__()的关系 1.单继承时super()和__init__()实现的功能是类似的 class Base(object): def __init__(sel ...

  5. LightMysql:为方便操作MySQL而封装的Python类

    原文链接:http://www.danfengcao.info/python/2015/12/26/lightweight-python-mysql-class.html mysqldb是Python ...

  6. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

  7. 再学python类(终结篇)

    续写 初学python类,这几天吃坏东西了,拖着虚弱的身躯写的.有些乱请各位看官海涵. 声明:本人编程新手,还在学习中.所表述的东西都是基础语法之类的,分享我的学习笔记.还望多多指点,我一定虚心接受. ...

  8. 【Python&数据结构】 抽象数据类型 Python类机制和异常

    这篇是<数据结构与算法Python语言描述>的笔记,但是大头在Python类机制和面向对象编程的说明上面.我也不知道该放什么分类了..总之之前也没怎么认真接触过基于类而不是独立函数的Pyt ...

  9. 《Python从入门基础到实践》

    <Python学习——从入门到实践> 第1章 Python语言概述 1.1 从计算机到编程 1.1.1 程序语言的演变:机器语言,汇编语言,高级语言 1.1.1.1 演变原因 1.1.1. ...

随机推荐

  1. 青云QingCloud业内率先支持云端全面透明代理功能 | SDNLAB | 专注网络创新技术

    青云QingCloud业内率先支持云端全面透明代理功能 | SDNLAB | 专注网络创新技术 青云QingCloud业内率先支持云端全面透明代理功能

  2. 又是一道水题 hdu背包

    Problem Description 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负) ...

  3. m版页面判断安卓与ios系统

    安卓系统和ios系统,在做app里面嵌入m版时,有时候会发现,ios上面的那个电池状态栏不占位置,但是安卓的状态栏占位,所以需要区分系统样式单独处理一下! var sUserAgent=navigat ...

  4. NET设计模式-单例模式(Singleton Pattern)

    1. 概述 Singleton Pattren 要求一个类有且仅有一个实例,并且提供一个全局变量.这个创建的对象是独一无二的,在这个单独对象实例中,集中所创建类的所有属性和方法. 在创建一个单例,何时 ...

  5. thymeleaf 和其它标签组合 获取数据

    thymeleaf 有很多的内置标签, 但是我们在开发中会引入其它很多标签, 这个时候, 后台数据过来了,前端 页面要怎么显示呢? 网上资料真的很少. 不过还是找到了答案:  th:attr 这个标签 ...

  6. UIButton图文上下对齐

    - (void)centerImageAndTitle:(float)spacing { // get the size of the elements here for readability CG ...

  7. C语言堆内存管理上出现的问题,内存泄露,野指针使用,非法释放指针

    C语言堆内存管理上出现的问题,内存泄露,野指针使用,非法释放指针 (1)开辟的内存没有释放,造成内存泄露 (2)野指针被使用或释放 (3)非法释放指针 (1)开辟的内存没有释放.造成内存泄露,以下的样 ...

  8. OpenCV 2.4.9

    2014.4.25 感谢那些參加开发.发送错误报告以及通过其它方式帮助我们的全部人和公司. 源代码如今已经可以从SourceForge和Github上下载了. 2.4.9版本号的帮助文章也更新到如今的 ...

  9. thinkphp 统计某个字段不重复数 总数

    $this->batch->count('DISTINCT intobatch');

  10. HUNNU--湖师大--11407--It Is Cold

    [F] It Is Cold Dr. Ziad Najem is known as the godfather of  the  ACPC. When the regional contest was ...