class Restaurant():
def __init__(self,restaurant_name,cuisine_type):
self.name = restaurant_name
self.type = cuisine_type
self.number_served = 0
def describe_restaurant(self):
print("the restaurant is:"+self.name.title()+".")
print("It is main business:"+self.type.title()+".")
def updata_people(self,number):
self.number_served = number
def open_restaurant(self):
#print("It is oprnninh!")
print("It has "+str(self.number_served)+" customers,please wait for a moment!")
def increment_people(self,inc_nums):
self.number_served = self.number_served + inc_nums rest = Restaurant('shudaxia','chuan cai')
rest.describe_restaurant()
rest.open_restaurant()
rest.number_served = 23
rest.open_restaurant()
rest.updata_people(30)
rest.open_restaurant()
rest. increment_people(25)
rest.open_restaurant()

上述代码表示:如何创建了一个类,如何实例化类,以及如何修改类

知识点1:创建类的要素:关键字:class; 类中创建的函数(暂且这么称呼)被称为方法,其中__init__是特殊的方法(注意前后各两个下划线):因为__init__中完成了参数的赋值,其中的参数通常被称为“属性”,(注意思考,类,属性 这种叫法的微妙性,体会面向对象的编程特色)。

知识点2:注意self 是必不可少的形参(或者叫属性)。因为self 实际上是传递的实例化对象,比如上述代码中的rest,通过上述代码,可以发现,通过self可以访问到所有的属性,并对其进行操作,这本质上很类似于c或c++中的指针。实际上,我们确实可以认为其具有指针的特色

面向对象,面向过程的本质性思考:

如果想要清楚面向过程和面向对象的差异性和其中的思想:首先需要清楚函数和类的差异性和本质,实际上,函数和类也就反映了过程和对象的本质。

拿c语言为例:c语言的构成都是由函数构成的,甚至是一个主函数。每个函数完成了特定的功能(这句话很重要)。即,我门强调:面向过程的C语言由函数块构成,函数是完成特定功能的块,我们认为函数是为了完成某一个功能(其实就是过程),c语言由这样具有某种联系的功能块构成最后一个我们需要的功能(过程)

而类强调描述一类事务的特性,这类事物具有某些属性。我们可以通过函数(这里叫方法,请理解这种叫法)来描述这类事物的属性,我们强调的是:描述的对象的属性是怎么样的。而完成这样的描述是通过函数(这里叫类)完成的。但我们的侧重点是:描述了哪种对象的哪些属性(尽管我们是通过函数(方法)来完成这样的描述)。由此可见,Python中这种描述更在意,对对象的描述,而不是过程的实现这一概念(我门可以认为对象的描述由过程的实现来完成)。

因此面向对象比面向过程具有更高的抽象等级和封装效果,它更强调:类本身到底具备哪些特点 ,然后将其对象化  ,这是一种典型的数据描述事物的风格;而面向过程则更像一个模拟信号,强调情节变化(功能变化),而面向对象更像一个数字信号。缺失了这种功能的衔接性,但是带来了事物的属性

Python学习第十四篇——类初步使用及面向对象思想的更多相关文章

  1. Python学习第十五篇——类继承和类实例化

    学习Python类时,我们明白了类的本质,以及所谓的面向对象编程思想强调的对事物本身的属性,我们对某一类事物进行描述——采用了很多方法,这些方法描述了类的属性(比如猫科动物的眼睛,四肢,是否哺乳类等等 ...

  2. Python 学习 第十四篇:命名元组

    Python的元组不能为元组内部的数据进行命名,而 collections.namedtuple 可以来构造一个含有字段名称的元组类,命名元组可以通过逗号+字段名来获取元素值: collections ...

  3. python cookbook第三版学习笔记十四:类和对象(五)代理类以及内存回收

    代理类: 代理类的作用其实有继承有些类似,如果你想将某个实例的属性访问代理到内部另外一个实例中去,可以用继承也可以用代理.来看下代理的应用: class A:     def spam(self,x) ...

  4. python 学习笔记十四 jQuery案例详解(进阶篇)

    1.选择器和筛选器 案例1 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  5. Python 学习 第十五篇:模块搜索路径和包导入

    在导入自定义的模块时,除了指定模块名之外,也需要指定目录,由于Python把目录称作包,因此,这类导入被称为包导入.包导入把计算机上的目录变成Python的命名空间,而目录中所包含的子目录和模块文件则 ...

  6. Python学习(十四) —— 并发编程

    一.进程的概念 进程即正在执行的一个过程,进程是对正在运行的程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念.操作系统的其它所有内容都是围绕进程的概念展开的. #必备的理论基础 #一 ...

  7. python学习【第四篇】python函数 (一)

    一.函数的介绍 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以 ...

  8. Python学习【第四篇】用户输入及判断

    用户输入: 例1.写一个用户输入密码的小程序,流程如下: 1.用户输入自己的用户名 2.打印"Hello+用户名" #!/usr/bin/env python #name = ra ...

  9. python学习第十四天 -面向对象编程基础

    python也是支持面向对象编程的.这一章节主要讲一些python面向对象编程的一些基础. 什么是面向对象的编程? 1.面向对象编程是一种程序设计范式 2.把程序看做不同对象的相互调用 3.对现实世界 ...

随机推荐

  1. mssql sqlserver xml数据类型专题

    摘要: 下文将详细讲述sql server xml数据类型的相关知识,如下所示: 实验环境: sql server 2008 R2 xml数据类型简介: mssql sqlserver xml数据类型 ...

  2. session 详细解析(转)

    转自 https://www.cnblogs.com/blueskycc/p/5524709.html?tdsourcetag=s_pcqq_aiomsg http协议是WEB服务器与客户端(浏览器) ...

  3. PHP中Snoopy类的使用

    最近看PHP书籍,发现了一个好东东,就是Snoopy类.Snoopy是一个php类库,用来模拟浏览器的功能,可以获取网页内容,发送表单. Snoopy的一些特点: 1抓取网页的内容 fetch 2 抓 ...

  4. java基础编程练习

    1.编写程序实现对给定的 4 个整数从大到小的顺序排列. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ...

  5. #004 C语言大作业学生管理系统试着做

    链表不会用 文件不会使 在这种情况下就边写边做 希望这个月能做完这个作业 #include<stdio.h> #include<stdlib.h> #include<st ...

  6. Spring的jdbc模板2:使用开源的连接池

    上篇简要介绍了如何在spring中配置默认的连接池和jdbc模板,这篇来介绍开源的连接池配置与属性引入 C3P0连接池配置: 引入jar包 配置c3p0连接池 <?xml version=&qu ...

  7. nginx: [emerg] unknown directive "stub_status" in /usr/local/openresty/nginx/conf/conf.d/ngx_metric.conf:19

    问题分析 Nginx没有添加modules/ngx_http_stub_status_module.o模块. 问题解决 没有安装的话,可以在tar包安装编译的时候添加如下参数: # ./configu ...

  8. Linux的基础命令

    -shutdown –h now(root用户才有效)     立即关机 -shutdown –r now(root用户才有效)     立即重新启动计算机 -reboot               ...

  9. java锁的种类以及辨析(一):自旋锁

    作者:山鸡 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) .这些已经写好提供的锁为我们开发提供了便利,但是锁的具 ...

  10. Python:Day15 函数

    函数参数补充: 还可以这样传参: def f(*args): print(args) f(*[1,3,4,5]) #输出结果:(1, 3, 4, 5) 注意这是一个元组 def f2(**kwargs ...