动态语言与静态语言的最大的不同就是,函数和类的定义,不是在编译的时候创建的,而是在运行的时候创建的。

例如我们写了一个叫demo.py的模块,在里面定义了一个类:

class Demo(object):

pass

然后我们在另一个模块helloword.py中引入了该模块:

from demo import Demo

class HelloWrold(object):

pass

当我们执行helloworld.py时,import入Demo则会创建一个Demo类。

我们可以用type()函数类看看Demo是啥类型。

type(Demo) // Demo是一个type类型

type(Demo()) //Demo()是一个Demo的实例,那么他是一个Demo类型。

我们定义的类的类型都是type类型,就跟python内置的类型int、float、string等一样~~其实我们可以这么理解,int、float、string其实也是归纳了世界上上常见的数据类型,例如一类由一串文字组成的数据,我们就叫这种数据类型为string。 那么我们自定义类一直数据类型叫Student,包含了年龄、性别、各科成绩等。我们自己将这一类数据归纳成一种数据类型叫做Student。 所以从这个较多来看,我们自己创建的一个类其实跟python定义的int、float啥的是一样的~~ 上面扯了这么多类的概念,也知道了实例是根据类来创建,类是在运行过程中创建的。那么类又是这么来的呢?

类是用type()函数创建的。

type函数不是用来判断类型的吗?没错,type还可以用来创建类。

type(what, base=None, attrs=None)

python在用type创建类的时候,接收三个参数

what,要创建的类名

要继承的父类,用一个tuple表示。

参数、方法,用一个字典表示

我们来举一个例子:

def __init__(self, name):

self.__name = name

def print_name(self):

print self.__name

Student = type("Student", (object,), {"__init__": __init__, "print_name": print_name, "age": 25})

student = Student("Charlie")

student.print_name()

print student.age

上面的例子中,我们利用type创建了一个类,并可以根据这个类来创建一个实例。

我们平时用关键字class定义一个类,其实仅仅是定义了一个类。Python解释器读取到用class定义的类的时候,读取了我在里面写的属性和方法,然后用type()创建了这个类。

python helloword_python学习笔记- python中的类相关推荐

  1. Python编程语言学习:python的列表的特殊应用之一行命令实现if判断中的两类判断

    Python编程语言学习:python的列表的特殊应用之一行命令实现if判断中的两类判断 目录 python的列表的特殊应用 一行命令实现if判断中的两类判断 python的列表的特殊应用 一行命令实 ...

  2. python语言学习:python语言学习中的定义类、定义函数、封装api等详细攻略

    python语言学习:python语言学习中的定义类.定义函数.封装api等详细攻略 目录 python语言学习中的定义类 python语言学习中的定义函数 python语言学习中封装api pyth ...

  3. Python学习笔记:创建分数类

    Python学习笔记:创建分数类 1.编写创建分数类.py # 创建分数类from math import gcd# 定义分数类 class Fraction: def __init__(self, ...

  4. Python编程语言学习:python语言中快速查询python自带模块函数的用法及其属性方法、如何查询某个函数关键词的用法、输出一个类或者实例化对象的所有属性和方法名之详细攻略

    Python编程语言学习:python语言中快速查询python自带模块&函数的用法及其属性方法.如何查询某个函数&关键词的用法.输出一个类或者实例化对象的所有属性和方法名之详细攻略 ...

  5. Python数据结构学习笔记——链表:无序链表和有序链表

    目录 一.链表 二.无序链表 实现步骤分析 三.无序链表的Python实现代码 四.有序链表 实现步骤分析 五.有序链表的Python实现代码 结语 一.链表 链表中每一个元素都由为两部分构成:一是该 ...

  6. Python数据结构学习笔记——队列和双端队列

    目录 一.队列的定义 二.队列 实现步骤分析 三.队列的Python实现代码 四.队列的应用 六人传土豆游戏 五.双端队列的定义 六.双端队列 实现步骤分析 七.双端队列的Python实现代码 八.双 ...

  7. Python数据结构学习笔记——栈

    目录 一.栈的定义和特性 (一)栈的定义 (二)栈的反转特性 二.实现分析步骤 三.栈的Python实现代码 四.栈的应用 (一)匹配圆括号 (二)匹配符号 (三)模2除法(十进制转二进制) (四)进 ...

  8. Python基础学习笔记之(二)

    Python基础学习笔记之(二) zouxy09@qq.com http://blog.csdn.net/zouxy09 六.包与模块 1.模块module Python中每一个.py脚本定义一个模块 ...

  9. Python基础学习笔记之(一)

    Python基础学习笔记之(一) zouxy09@qq.com http://blog.csdn.net/zouxy09 前段时间参加微软的windows Azure云计算的一个小培训,其中Pytho ...

最新文章

  1. 关于eigrp-FSM有限状态机的资料
  2. 无线局域网安装与调试(Wireless LAN installation and commissioning)
  3. 火炬之光使用了哪些技术
  4. 程序猿都在关注的6个优质公众号
  5. 详解MySQL中DROP,TRUNCATE 和DELETE的区别
  6. sencha touch调试时Please close other application using ADB: Monitor, DDMS, Eclipse
  7. 面试官问我如何做产品分析
  8. 通过管道进行线程间通信
  9. JavaScript==比较的规则
  10. 第四周课程总结&实验报告。
  11. Use Data Caching Techniques to Boost Performance and Ensure Synchronization(转)
  12. python怎么计算圆上任意两点的距离_圆周上两点距离-python
  13. bootstrap 复选框及单选按钮
  14. 什么是P问题、NP问题和NPC问题
  15. 图书条形码跟ISBN号互相转换的类
  16. 基于selenium的大麦网自动抢票脚本实测(新年第一篇)
  17. 时间计算题100道_这三个马政经计算题,你能对几个?
  18. 微博营销推广策略分析
  19. C#对Java--微软的反击
  20. 跟小甲鱼学Web开发笔记06(最新进展不按进度顺序)

热门文章

  1. sqserver对比oracle的区别,oracle和sqlserver比较
  2. java file类包_Java中File类的常用API
  3. mysql_unbuffered_query的_mysql_query与mysql_unbuffered_query的区别
  4. 【已解决】Navicat 远程连接 Linux服务器上的MySQL数据库
  5. 华为性格面试的破解方法
  6. 时隔七个月,我终于弄懂了汉诺塔的思想
  7. python秒杀神器苏宁_Python爬虫——实战三:爬取苏宁易购的商品价格
  8. 用html编辑csdn的方法
  9. makefile文件中的依赖关系理解
  10. 工具SSHSecure连接远程服务器步骤