在我的收藏中有一篇特别详细的类讲解

此处部分内容引自:http://blog.sina.com.cn/s/blog_59b6af690101bfem.html

class myclass:

'this is my first class of python'

# foo是类属性,相当于static foo是静态成员,可以用类名直接访问

foo=100

# myfun 是类方法,必须由类的实例来调用

def myfun (self):

print
myclass.foo

C=myclass()

C.myfun()

类的特殊属性

myclass 是类定义

print myclass.__name__ output:myclass貌似只有类定义有这个属性,类实例没有这个属性

print myclass.__doc__ output:'this
is my first class of python' 类的文档字符串

print myclass.__dict__ output:类的所有属性和方法,只有类定义有,实例这个属性输出空

print myclass.__module__ output:__main__类定义所在的模块

C是类的实例

print C.__doc__ output:'this is my first class of python' 类的文档字符串,实例也有此属性

print C.__dict__ output:{} 实例没有这个属性,输出为空

print C.__module__ output:__main__ 类定义所在的模块

print C.__class__ output: myclass 实例对应的类名,仅实例有此属性

类的构造

class myclass:

'this is my first class of python'

foo=100

def myfun (self):

print "class's func "

def __init__(self,msg='hello'):

self.msglist=msg //实例属性可以动态的添加,此时是在构造时候添加完成

print 'init'



print myclass.foo

C=myclass()

C.myfun()

print C.msglist

注意,python可以灵活的随时为类或是其实例添加类成员,有点变态,而且实例自身添加的成员,与类定义无关:

//添加一个类实例的成员

C.name='genghao'

现在实例C有了数据成员 name

现在加入这两句

print C.__dict__

print myclass.__dict__

可以看到类定义里面并没有添加成员name,说明它仅仅属于类的实例C

类继承:

class subclass(myclass):

member='sdkfjq'

def  func(self):

print "sdfa"

多重继承:

class
multiple_inheritance(myclass,subclass,ortherclass):

def funy():

do what you want to do

测试代码:

class ttt:

    name= 42

  

    def __init__(self,voice='hello'):

        self.voice=voice#new member for class

    def member(self):

        self.name=63

        self.strane='st' #new member for class

    def say(self):

        print self.voice

t= ttt()

t.say()

print t.name

t.member()

t.fuc='sdfa'#new member for instance of the class ttt

print t.name

print ttt.__name__

print ttt.__dict__

print t.__dict__

print t.fuc

python类定义的更多相关文章

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

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

  2. python类定义的讲解

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

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

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

  4. python 类定义 继承

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

  5. Python类定义、属性、初始化和析构

    类的定义,属性和方法概念 方法中self的作用和意义 初始化( __init__ ) 和 析构方法( __del__ ) 类的定义 class 类名 实例 实例名 = 类名() 一个“实例”的“特征” ...

  6. Python类的探讨

    我们下面的探讨基于Python3,我实际测试使用的是Python3.2,Python3与Python2在类函数的类型上做了改变 1,类定义语法  Python类定义以关键字class开头,一个类定义例 ...

  7. Python笔记——类定义

    Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...

  8. python类的定义和使用

    python中类的声明使用关键词class,可以提供一个可选的父类或者说基类,如果没有合适的基类,那就用object作为基类. 定义格式: class 类名(object): "类的说明文档 ...

  9. Python类的定义

    Python笔记--类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...

随机推荐

  1. opencv 3.1.0 访问像素值的三种方法(C++)

    三种方法分别问: 指针访问:void colorReduce_ptr(cv::Mat &inputImage, cv::Mat &outputImage, int div); 迭代器访 ...

  2. Java并发编程(一)-为什么要并发

    并发所带来的好处 1. 并发在某些情况(并不是所有情况)下可以带来性能上的提升 1) 提升对CPU的使用效率 提升多核CPU的利用率:一般来说一台主机上的会有多个CPU核心,我们可以创建多个线程,理论 ...

  3. MLDS笔记:浅层结构 vs 深层结构

    深度学习出现之前,机器学习方面的开发者通常需要仔细地设计特征.设计算法,且他们在理论上常能够得知这样设计的实际表现如何: 深度学习出现后,开发者常先尝试实验,有时候实验结果常与直觉相矛盾,实验后再找出 ...

  4. JavaScript Boolean(布尔)对象

    Boolean(布尔)对象用于将非布尔值转换为布尔值(true 或者 false). Boolean(布尔)对象是三种包装对象:Number.String和Boolean中最简单的一种,它没有大量的实 ...

  5. 手势监听GestureDetector 案例

    以下只做长按和甩出(用户按下朝某一方向甩动手指)案例 OnGestureListener可以查看到更多的手势事件 案例 package com.qf.mobliesafe.activity; impo ...

  6. EasyUI常用组件(基础)

    ---------------------------------------------------------------------------------------------------- ...

  7. OpenCV Python 录制视频

    调用摄像头 引入库支持 初始化 调整界面大小 实时显示 录制视频并保存 fourcc问题解决 代码实现 效果展示 总结 学到实用OpenCV调用笔记本电脑的摄像头,并录制视频保存到本地硬盘的时候,出现 ...

  8. PHP+MySQL 分页那点事

    分页技术随处可见,这可以算得上是最为基础的网站功能了.于是今天尝试着用PHP来实现一个分页的小例子. 准备工作 环境准备 Apache MySQL PHP 工作环境 数据库准备 建库 建表 预存数据 ...

  9. SpriteKit:检测当新场景显示以后

    Detecting When a New Scene Is Presented Sprite Kit在SKScene类中提供2个可以重载的方法用来检测当一个场景过渡出去或过渡进来的时候. 第一个方法是 ...

  10. C/C++的mem函数和strcpy函数的区别和应用

    mem系列函数是面试的时候常考的知识点,我们需要熟练掌握这三个函数的原理和代码实现,要能准确无误的写出代码. memcpy.memset和memset三个函数在使用过程中,均需包含以下头文件: //在 ...