Python笔记(九)
#encoding=utf-8
# python高级编程
# python面向对象
# 创建类
# 无意中把Visual Studio Code的窗口调小了,查了一下,可以使用Ctrl+=放大窗口,使用Ctrl+-缩小窗口
class Person: # 这里类的申明用class
'The baseclass of Human' # 文档字符串,相当于类的描述
ins_count=0 # 这里申明的是类变量,在所有实例化对象中是公用的,类似于我们所说的静态变量
def __init__(self,name,age,sex): # 这里方法的申明用def,__init__()表示初始化构造函数,注意这里的init都是双下划线
self.name=name # 类变量的申明,类似与我们的属性,只在当前的实例化对象中访问
self.age=age
self.sex=sex
self.ins_count+=1
def logInfo(self): # 方法的定义,这种定义使用类似于Person.logInfo()这种方式调用是错误的
if(self.sex==1): # self代表类的实例,在定义类的方法时是必须的,但在调用时不必传入相应的参数
print 'His name is',self.name,',age is',self.age
else:
print 'Her name is',self.name,',age is',self.age # 通过符号“.”来实现对属性的访问
print self.ins_count
def logAge(self): # 普通方法
print 'Age is',self.age
@staticmethod
def printClassName(): # 静态方法 无法访问类和实例属性
print 'Person'
@classmethod
def printAttr(cls): # 类方法 可以访问类属性 无法访问实例属性
print cls.ins_count
def __del__(self):
print 'drop'
p=Person('hanmeimei',13,0) # 使用Person()的形式来创建类的实例,不需要像其他面向对象语言那样使用new来实例化
Person.printClassName()
p.logInfo()
print(getattr(p,'name'))
'Python类的内置属性:__dict__,类的属性(包含一个字典由类的属性数据组成)'
print Person.__dict__ # 输出类的数据属性
print Person.__name__ # 输出类名
print Person.__module__ # 输出类所在的模块
print Person.__doc__ # 输出类的文档字符串
print Person.__bases__ # 输出类的所有父级的组成元组
#del p # 当对象被创建时,就创建了一个引用,当这个对象不需要时,解释器会在适当的时机将垃圾对象占用的内存空间回收,可以定义__del__函数在对象销毁时调用
class Student(Person): # 左侧即是类的继承的写法,使用 class child(parent)
__serialNo=10086 # 申明私有变量,在外部不可访问
def logAge(self): # 如果父类的方法不能满足需求时,可以在子类中重写父类的方法
if(self.sex==1):
print 'His age is',self.age
else:
print 'Her age is',self.age
def __addserialNo(self): # 定义私有方法,外部不能访问
self.__serialNo+=1
# 关于下划线的说明,像__foo()__这种头尾双下划线的表示特殊方法,一般表示系统定义的名字,如__init()__之类,_foo()单下划线开头这种则表示的是protected级别,__foo()双下划线开头表示private级别
s=Student('lilei',15,1)
s.logInfo()
s.logAge()
# 熟悉面向对象的同志们可能发现这里没有重载,作者表示是的,我就是没有,跟我的理念不相符,……
Python笔记(九)的更多相关文章
- python笔记九(迭代)
一.迭代 通过for循环来遍历一个列表,我们称这种遍历的方式为迭代.只要是可迭代对象都可以进行迭代操作. 以下代码可以用来判断一个对象是否是可迭代的. 一类是集合数据类型,如list.tuple.di ...
- Python笔记(九)_切片、列表生成式
切片 mylist[:3] 取前3位元素,0可省略不写 mylist[-4:] 取后4位元素,0可省略不写 mylist[2:4] 从第2个开始取,取到第4个,但第4个不取,取的元素值为4-2=2 m ...
- python3.4学习笔记(九) Python GUI桌面应用开发工具选择
python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者http://www.admin10000.com/document/96 ...
- s21day01 python笔记
s21day01 python笔记 一.计算机基础 计算机的初步认识 用户:人 软件:QQ.浏览器等 解释器/编译器/虚拟机:java解释器.python解释器等 操作系统 硬件:CPU.内存.硬盘. ...
- python笔记-1(import导入、time/datetime/random/os/sys模块)
python笔记-6(import导入.time/datetime/random/os/sys模块) 一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其 ...
- Python笔记之不可不练
如果您已经有了一定的Python编程基础,那么本文就是为您的编程能力锦上添花,如果您刚刚开始对Python有一点点兴趣,不怕,Python的重点基础知识已经总结在博文<Python笔记之不可不知 ...
- boost.python笔记
boost.python笔记 标签: boost.python,python, C++ 简介 Boost.python是什么? 它是boost库的一部分,随boost一起安装,用来实现C++和Pyth ...
- 20.Python笔记之SqlAlchemy使用
Date:2016-03-27 Title:20.Python笔记之SqlAlchemy使用 Tags:python Category:Python 作者:刘耀 博客:www.liuyao.me 一. ...
- Python笔记——类定义
Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...
- 13.python笔记之pyyaml模块
Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...
随机推荐
- JavaOO小结二,及MySQL小结
流按照传输内容分有几种?各自的父类是什么? 流按照传输内容有 字节流.字符流.对象流.但其本质都是字节流.字符流和对象流是在字节流基础上作了一层封装,以便更好对字符和对象进行操作. 字节流的父类:In ...
- SLAM: VSLAM扫盲之旅
在<机器人手册> 第2卷,这本书里面,第23章讲述了:三维视觉和基于视觉的实时定位于地图重建.在第37章里面,讲述了 同时定位与建图.指出了SLAM的三种基本方法. 一种是EKF的方法,但 ...
- 【剑指Offer】11、二进制中1的个数
题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 解题思路: 本题有以下两个解决方案: (1)依次判断每一位.判断的方法是先与1相与,为1则说明该位为1 ...
- dmidecode输出详解
一.先来看几个用dmidecode查看内存信息的例子. 1.查看内存槽数.那个槽位插了内存,大小是多少 [root@jiangyi01.sqa.zmf /home/ahao.mah] #dmideco ...
- vue: This relative module was not found
这是今天运行vue项目报的一个错误,特地在此记录一下. 错误信息如下: ERROR Failed to compile with 1 errors This relative module was n ...
- 61.index CUD
主要知识点 索引CUD 一.创建索引的语法 PUT /my_index { "settings": { ... any settings ... }, " ...
- Git 基础教程 之 撤销修改
Git跟踪并管理的是修改,而非文件.每次修改,如果不用git add到暂存区,那就不会加入到commit中, 要么全部改完后,再add → commit :要么改一点,就add → commit. 撤 ...
- foj 2173 floyd+矩阵快速幂
Problem 2173 Nostop Accept: 52 Submit: 210 Time Limit: 3000 mSec Memory Limit : 32768 KB Pro ...
- ACDream - k-GCD
先上题目: B - k-GCD Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Sub ...
- mongodb--安全
安全和认证 mongodb和redis比较像,安全部分依赖于其所存在的环境 一定要把mongodb放在一个可信的环境下去运行,mongodb只能被web服务器所访问,禁止开外网端口访问mongodb, ...