资讯专栏INFORMATION COLUMN

python学习笔记- python中的类

Mr_zhang / 1409人阅读

摘要:是一个类型是一个的实例,那么他是一个类型。那么我们自定义类一直数据类型叫,包含了年龄性别各科成绩等。我们自己将这一类数据归纳成一种数据类型叫做。在用创建类的时候,接收三个参数,要创建的类名要继承的父类,用一个表示。

动态语言与静态语言的最大的不同就是,函数和类的定义,不是在编译的时候创建的,而是在运行的时候创建的。
例如我们写了一个叫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()创建了这个类。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38328.html

相关文章

  • iOS学习笔记之 Objective-C (二)

    摘要:和或中的相同,代表空对象,并不会存在于内存中,所以当时,指针将不会指向内存中的任何一个区域。和在使用上是没有严格限定的,它们俩可以相互替代。另外还有权限变量在框架内为,对于框架外则是私有的。 上一篇文章 结尾草草地写了这么个Demo:定义一个Student类,实例化出一个xiaoming的对象,并同时使用python和java与Objective-C实现它们。这段代码只是演示了一些最...

    Benedict Evans 评论0 收藏0
  • python学习笔记-类对象的信息

    摘要:内置了多个函数用来获取对象或者实例的信息,例如等。用来判断对象类型。类型,已经定义了多个常量。类型的值与类似。更加推荐使用对中的对象类型进行判断。与的区别可以阅读了解更多。举一个例子我们在中定义下列继承关系定义继承关系 python内置了多个函数用来获取对象或者实例的信息,例如type,isinstance,dir等。 type() type()用来判断对象类型。该函数既可以对pyth...

    waterc 评论0 收藏0
  • python学习笔记-类和实例

    摘要:面向对象最重要的概念应该就是类和实例了。记得以前学习的时候,有一个比较简单的例子来解释类和实例。构造函数类中可以定义一个构造函数。构造函数的意思就是类在创建的时候会执行的函数。在实例中通过构造函数添加的或者在类外动态添加的属性可以。 面向对象最重要的概念应该就是类(class)和实例(instance)了。记得以前学习java的时候,有一个比较简单的例子来解释类和实例。在汽车制造过程中...

    Richard_Gao 评论0 收藏0
  • Python学习之路17-Django入门

    摘要:编程从入门到实践笔记。执行命令后,项目的根目录下会多出一个名为的数据库文件。下面创建一个主题类用户学习的主题返回模型的字符串表示类是中的一个定义了模型基本功能的类。这种交互式环境称为,常用语测试项目和排除故障。 《Python编程:从入门到实践》笔记。从本篇开始将是该书的最后一个项目,将用3篇文章来介绍Django的基础。完成一个学习笔记的小网站。 1. 前言 在本篇中,我们将: 用...

    shadowbook 评论0 收藏0
  • 流畅的python读书笔记-第十章-继承优缺点

    摘要:继承的优缺点推出继承的初衷是让新手顺利使用只有专家才能设计出来的框架。多重继承的真实应用多重继承能发挥积极作用。即便是单继承,这个原则也能提升灵活性,因为子类化是一种紧耦合,而且较高的继承树容易倒。 继承的优缺点 推出继承的初衷是让新手顺利使用只有专家才能设计出来的框架。——Alan Kay 子类化内置类型很麻烦 (如 list 或 dict)) ,别搞这种 直接子类化内置类型(如 ...

    morgan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<