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
分享到:
相关推荐
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 + ...
Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip ...
Python2.7学习文档
sudo cp -r /home/sukai/python-pkg/tornado/lib64/python2.7/site-packages/tornado /usr/lib/python2.7/dist-packages sudo cp -r /home/sukai/python-pkg/tornado/lib64/python2.7/site-packages/tornado-4.4.2-...
apscheduler2.0 支持python 2.7 定时任务
python2.7 flask离线安装
python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf ...
python2.7 windows版zip文件,解压缩即可。
python2.7 解压直接用
这个PDF用于进行python内容学习 ,主要针对的python版本是2.7
win64 python2.7+numpy+scipy+matplotlib64-exe
python2.7版本的pywin32安装程序64位版本的,这个我用过,一步一步安装下去就可以了,里面还有python3.2版本的
Python2.7_MACOS_64位&32位MacOS系统安装包Python2.7_MACOS_64位&32位MacOS系统安装包Python2.7_MacOS(Python2.7_MacOS系统32位+64位)
Mac OS 系统 Python2.7 安装PyInstaller 安装包。 解压以后,输入指令即可完成安装 包含安装指令
win32位,python2.7配套系列:python2.7+numpy+matplotlib安装包
廖雪峰Python2.7书签目录完整版,纯手工编辑的书签
Ubuntu下Python2.7及DockerY一键安装的deb离线包 把文件解压到Ubuntu离线环境上,cd到文件目录,执行dpkg -i * 就可以了
64位python,亲测windows7下 可用
1.安装对应的库 2.将test_http_copy.py代码复制到自己的服务器或电脑上 3.python test_http_copy.py启动或(ohup python -u test_http_copy.py > test.log 2>&1 & 后台启动) 4.使用postman调用自测。
lxml python2.7离线安装包