`
runfeel
  • 浏览: 936113 次
文章分类
社区版块
存档分类
最新评论

Python2.7 学习笔记 (三)—— 类,继承,重载

 
阅读更多
16:56 2012-3-9
声明:以下代码都是在Python2.7+Winxp中执行通过

[面向对象]
1.类的定义
#-*-coding:utf-8-*-
class student:
name = '' #定义类的公有属性,可直接访问
age =0

class human :
sex =''
height=0

2.类的继承
class student(human): #只能继承父类的共有属性和共有方法,私有的属性和方法不能继承

3.类的使用
#-*-coding:utf-8-*-
tom = student() #实例化student类
tom.name='tome'
print tom.name
print tom.age

4.类的变量和方法
__开始的变量,是私有变量,只有在类内部可以访问,要通过self.__name 访问,相当于private
可以通过函数来取得和修改私有变量
其他变量,都属于公有变量,相当于public

4.1类的私有变量
#-*-coding:utf-8-*-
class human:
name ='human'
age =18
__sex='male' # 私有变量

def getSex(self):
return self.__sex

def setSex(self,sex): #self必须是第一个参数
self.__sex=sex

class student(human):
grade =0

print human.name
print student.grade
print student.age #继承自父类human
#print human.__sex #这里会报错,私有变量不能直接访问
h= human()
print h.getSex()
h.setSex('female') #设置sex 为female
print h.getSex()

4.2类的私有方法
#-*-coding:utf-8-*-
class human:
name ='human'
age =18
__sex='male' # 私有变量

def __privateMethod(self): #类的私有方法
print "I am a class private method"

def callPrivateMethod(self): #调用类私有方法,只有类内部可以调用
self.__privateMethod() #调用的时候,需要加self前缀

class student(human):
grade =0

h= human()
h.callPrivateMethod()

4.3.类的专有方法 Special Methods
__init__ 构造函数,生成对象时被调用
__del__ 析构函数,释放对象时被调用
__add__ 加晕死
__mul__ 乘运算
__cmp__ 比较运算
__repr__ 打印,转换
__setitem__ 按照索引赋值
__getitem__ 按照索引取值
__len__ 获得长度
__call__ 函数调用

#-*-coding:utf-8-*-
class human:
__name=''

__age=0


def __init__(self,name,age): #构造函数
self.__name=name
self.__age=age

def show(self): # def 和class 之间要有缩进
print "name is:"+self.__name
print "age is:"+ str(self.__age) #数字记得要转换成字符串
tom = human("tom",18);
tom.show();

5.类的多重继承
class student (human,father,superman):
基础顺序从左往右,子类的变量和方法会覆盖父类的同名变量和方法

#-*-coding:utf-8-*-
class human:
name ='human'
nickname='h'
def show(self): #def 和class 之间要有缩进
print "name is:"+self.name
print "nickname:"+self.nickname

class teacher:
name ='teacher'
nickname='t'
def show(self): #def 和class 之间要有缩进
print "name is:"+self.name
print "nickname:"+self.nickname

class boy(human,teacher): #继承顺序从左往右:human,teacher
nickname="boy"; #父类里也有nickname,但是这个值会被子类覆盖掉

class girl(teacher,human): #继承顺序从左往右:teacher,human
nickname="girl";

b = boy();
b.show();#输出 name is human ,nickname is boy

g = girl();
g.show();#输出 name is teacher,nickname is girl

6.重载
子类中,使用和父类同样的方法名,就可以覆盖父类的方法
#-*-coding:utf-8-*-
#重载
class human:
def show(self): #def 和class 之间要有缩进
print "name is father"

class boy(human):
def show(self): #def 和class 之间要有缩进
print "name is boy"

b = boy();
b.show();#输出 name is boy

7.运算符重载
python中的运算符,其实也是对应相应的方法,所以,运算符重载,就是相应的方法重载
了解这个之后,运算符重载就和普通重载没什么区别
+ __add__
- __sub__
* __mul__
/ __div__
% __mod__
** __pow__

#运算符重载
class mylist:
__params =[]
def __init__(self,*args): #重载__init__方法, *args为可变参数
self.__params=[] #初始化
for arg in args:
self.__params.append(arg) #把输入参数都存到params里


def __add__(self,n): # 重载__add__方法; n 表示被加的那个数
for i in range(0,len(self.__params)):
self.__params[i] +=n; #params里的数都加1
def show(self):
print self.__params

list = mylist(1,2,3,4,5)
list+ 1 #1就相当于__add__(self,n) 里的n
list.show() #输出[2.3,4,5,6]

18:38 2012-3-12
END

分享到:
评论

相关推荐

    python2.7 windows版zip文件

    Python 2.7是Python编程语言的一个早期稳定版本,尤其对于Windows用户来说,它提供了在该操作系统上进行开发和执行Python程序的能力。本压缩包包含了Python 2.7的Windows版安装所需的所有基本组件和库。 `README....

    python2.7 64位

    Python 2.7 64位是Python编程语言的一个特定版本,专为64位操作系统设计,例如Windows 7。这个版本提供了对64位计算的支持,允许处理更大的内存和数据集,对于需要处理大量数据或者运行高性能计算的程序特别有利。在...

    python2.7 解压直接用

    Python 2.7 是 Python 编程语言的一个老版本,发布于2010年,其特点是稳定且广泛被各种项目所使用。虽然现在最新的稳定版本是 Python 3.x,但许多遗留系统和软件仍然依赖于 Python 2.7。在处理压缩文件时,Python ...

    Python 2.7 + QT4 1

    Python 2.7 + QT4 Python 2.7 + QT4 Python 2.7 + QT4 Python 2.7 + QT4 Python 2.7 + QT4 Python 2.7 + QT4 Python 2.7 + QT4 Python 2.7 + QT4 Python 2.7 + QT4 Python 2.7 + QT4 Python 2.7 + QT4 Python 2.7 + ...

    Mac下Python2.7 PyInstaller安装包

    这个“Mac下Python2.7 PyInstaller安装包”正是为了解决在苹果操作系统上,针对Python 2.7版本,如何方便地安装和使用PyInstaller的问题。 首先,让我们深入理解PyInstaller的作用。PyInstaller的主要功能是将...

    Ubuntu下Python2.7及DockerY一键安装的deb离线包

    5. 安装Python 2.7后,你可以通过运行`python2.7`来验证安装是否成功。对于Docker Y,如果是Docker Compose,使用`docker-compose --version`来检查安装是否正确。 6. 如果在安装过程中遇到任何问题,如权限问题,...

    apscheduler2.0 支持python 2.7

    《apscheduler2.0在Python 2.7中的定时任务应用详解》 apscheduler是Python中一个强大的任务调度库,它允许开发者在指定的时间执行任务,实现类似cron的工作。apscheduler2.0版本是对Python 2.7环境的完美支持,...

    Python 笔记源码——内含python后端&机器学习等.zip

    Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip ...

    pymysql适用python2.7版本

    《Python2.7环境下使用PyMySQL进行数据库操作详解》 在Python编程中,与数据库的交互是不可或缺的一部分,尤其是在处理大量数据或构建Web应用程序时。PyMySQL是一个纯Python实现的MySQL客户端库,它为Python2.7及更...

    Python2.7安装包

    - 验证安装:安装完成后,打开命令提示符,输入`python`或`python2.7`,如果看到Python交互式解释器的提示符,说明安装成功。 4. **Python环境配置**: - `pip`安装:Python 2.7.13安装时可能不包含pip,需要单独...

    Python2.7_MACOS_64位&32位MacOS系统安装包

    Python2.7_MACOS_64位&32位MacOS系统安装包Python2.7_MACOS_64位&32位MacOS系统安装包Python2.7_MacOS(Python2.7_MacOS系统32位+64位)

    centos虚拟机安装升级版的python2.7问题

    sudo ln -s /usr/local/python2.7/bin/python2.7 /usr/bin/python2 ``` 6. **更新PATH环境变量**: 需要将新的Python路径添加到PATH环境变量中,以便在命令行中可以调用Python 2.7。 ``` echo "export PATH=/usr...

    快速部署python2.7

    现在,你可以通过运行`python2.7`命令来启动新安装的Python解释器。 8. **验证安装**: 最后,检查Python 2.7是否已成功安装: ``` python2.7 -V ``` 如果一切正常,你应该能看到类似“Python 2.7.18”的输出...

    python2.7 for mac

    因此,要确保在命令行中使用Python 2.7,你需要使用`python2.7`或创建软链接。 Python 2.7与Python 3的主要区别在于语法和库的更新。例如,Python 3中print成为函数,而不是语句;输入函数不再自动转换为字符串;...

    python-2.7的安装包

    Python 2.7是Python编程语言的一个重要版本,它在编程界有着广泛的使用,尤其是在许多老项目和系统中。Python 2.7的安装包是为那些需要在计算机上部署或运行基于此版本的Python代码的用户准备的。在本文中,我们将...

    Python2.7的scapy安装

    在Python 2.7版本中,虽然现在Python已经更新到3.x系列,但仍然有一些场景需要使用2.7版本,因此了解如何在Python 2.7环境下安装Scapy是非常有用的。 首先,我们来看`npca-0.97.exe`这个文件,它是Npcap的安装程序...

    python2.7和3.7免安装windows版(含pip)

    这个压缩包包含的是Python的两个重要版本——2.7和3.7的免安装版本,特别适用于那些希望快速启动Python环境而无需进行繁琐安装的用户。在Windows操作系统中,这种绿色免安装版本非常实用,尤其是对于需要在不同...

    python2.7 flask离线安装

    python2.7 flask离线安装

    廖雪峰Python2.7

    此外,Python有着丰富的标准库和第三方库,能够覆盖网络编程、文件操作、图形用户界面、数据库访问、文本处理等众多领域。这些库通常被称作“内置电池”,意味着许多功能可以直接使用而无需从头编写。 Python的设计...

    python2.7 scikit-learn 安装包

    Python 2.7是Python编程语言的一个早期稳定版本,它在2010年发布,直至2020年停止支持。尽管现在推荐使用更新的Python 3.x版本,但仍有部分项目和环境依赖于Python 2.7。在Python 2.7中,语法与现代Python版本略有...

Global site tag (gtag.js) - Google Analytics