上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 22 下一页
摘要: 在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: 这显然不合逻辑。为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,这样,在set_score()方法里,就可以检查参数: 现 阅读全文
posted @ 2018-08-02 17:24 珊迪·奇克斯 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class: 然后,尝试给实例绑定一个属性: 还可以尝试给实例绑定一个方法: 但是,给一个实例绑定的方法,对另一个实例是不起作用的: 为了给所有实例都绑定方法,可以 阅读全文
posted @ 2018-07-30 16:15 珊迪·奇克斯 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 由于Python是动态语言,根据类创建的实例可以任意绑定属性。 给实例绑定属性的方法是通过实例变量,或者通过self变量: 但是,如果Student类本身需要绑定一个属性呢?可以直接在class中定义属性,这种属性是类属性,归Student类所有: 当我们定义了一个类属性后,这个属性虽然归类所有,但 阅读全文
posted @ 2018-07-28 10:07 珊迪·奇克斯 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 当我们拿到一个对象的引用时,如何知道这个对象是什么类型、有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: 如果一个变量指向函数或者类,也可以用type()判断: 但是type()函数返回的是什么类型呢?它返回对应的Class类型。 阅读全文
posted @ 2018-07-27 16:43 珊迪·奇克斯 阅读(1148) 评论(0) 推荐(0) 编辑
摘要: 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。 比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直 阅读全文
posted @ 2018-07-26 16:21 珊迪·奇克斯 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name、score属性: 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Pyt 阅读全文
posted @ 2018-07-26 13:33 珊迪·奇克斯 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。 仍以Student类为例,在Python中,定义类是通过class关键字: class后面 阅读全文
posted @ 2018-07-25 16:42 珊迪·奇克斯 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即 阅读全文
posted @ 2018-07-25 15:21 珊迪·奇克斯 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 在Python中,安装第三方模块,是通过包管理工具pip完成的。 如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了。 如果你正在使用Windows,请参考安装Python一节的内容,确保安装时勾选了pip和Add python.exe to Path。 在命令提示符窗口下尝试运行 阅读全文
posted @ 2018-07-25 11:41 珊迪·奇克斯 阅读(207) 评论(0) 推荐(0) 编辑
摘要: Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用。 我们以内建的sys模块为例,编写一个hello的模块: 第1行和第2行是标准注释,第1行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行,第2行注释表示.py文件本身使用标准UTF-8编码; 阅读全文
posted @ 2018-07-23 11:11 珊迪·奇克斯 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module) 阅读全文
posted @ 2018-07-18 13:26 珊迪·奇克斯 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 因为函数也是一个对象,函数对象又能赋给变量,所以变量就可以调用该函数。 函数对象有一个__name__属性,可以拿到函数的名字: 阅读全文
posted @ 2018-07-16 14:32 珊迪·奇克斯 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 我们先看一个map函数的例子 我们可以用一种更加简单的方式来完成例子 这样是不是更加简洁了呢,这就是匿名函数! 通过对比可以看出,匿名函数lambda x: x * x实际上就是: 关键字lambda表示匿名函数,冒号前面的x表示函数参数。 匿名函数有一个限制,那就是只能包含一个表达式,不用写ret 阅读全文
posted @ 2018-07-16 13:57 珊迪·奇克斯 阅读(138) 评论(0) 推荐(0) 编辑
摘要: Github中单个文件的大小限制是100MB,为了能突破这个限制,我们需要使用Git Large File Storage这个工具, 阅读全文
posted @ 2018-07-15 19:36 珊迪·奇克斯 阅读(1048) 评论(0) 推荐(0) 编辑
摘要: 函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。 我们来实现一个可变参数的求和。通常情况下,求和的函数是这样定义的: 但是,如果不需要立刻求和,而是在后面的代码中,根据需要再计算怎么办?可以不返回求和的结果,而是返回求和的函数: 当我们调用lazy_sum()时,返回 阅读全文
posted @ 2018-07-08 16:44 珊迪·奇克斯 阅读(1032) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 22 下一页