Python之面向对象编程
2016-07-05 18:11
169 查看
1.类的形式:
class Student(object):
def __init__(self, name,age):
self.name=name
self.age=age
def toString(self):
print “name: %s age:%s”(self.name, self.age )
类名Student(首字母一般大写),括号内是继承的类,任何类都会继承于object类;__init__方法定义了student的初始化(构造方法);toString方法是类的方法;在方法名或属性名前加上“__”表示方法或属性名为私有;self表示类自身,类似于this。
2.类的继承与多态与java类似。
3.动态绑定属性和方法(以上面的类为例)
s = Student(“song”,22)
s.score = 90
print s.score
这时,score这个属性绑定到实例s上,通过s就可以访问这个属性,但是如果需要限制绑定,可以在class的开头加入这样一条代码:
__slots__=(‘name’, ‘age’)
这样一来,class就只有name和age两个属性,其它属性的绑定会报错
def birthday(self):
self.age=self.age+1
print “Happy birthday!”
from types import MethodType
s = Student(“song”,22)
s.birthday = MethodType(birthday, s, Student)
s.birthday()
这时,birthday这个方法绑定到实例s上,如果实例化另外一个Student时,是无法调用birthday方法的。如果要实现Student的任何实例化对象都能够调用,需要这样做,
Student.birthday= MethodType(birthday, None, Student)
ps:动态绑定是动态语言特有的功能
class Student(object):
def __init__(self, name,age):
self.name=name
self.age=age
def toString(self):
print “name: %s age:%s”(self.name, self.age )
类名Student(首字母一般大写),括号内是继承的类,任何类都会继承于object类;__init__方法定义了student的初始化(构造方法);toString方法是类的方法;在方法名或属性名前加上“__”表示方法或属性名为私有;self表示类自身,类似于this。
2.类的继承与多态与java类似。
3.动态绑定属性和方法(以上面的类为例)
s = Student(“song”,22)
s.score = 90
print s.score
这时,score这个属性绑定到实例s上,通过s就可以访问这个属性,但是如果需要限制绑定,可以在class的开头加入这样一条代码:
__slots__=(‘name’, ‘age’)
这样一来,class就只有name和age两个属性,其它属性的绑定会报错
def birthday(self):
self.age=self.age+1
print “Happy birthday!”
from types import MethodType
s = Student(“song”,22)
s.birthday = MethodType(birthday, s, Student)
s.birthday()
这时,birthday这个方法绑定到实例s上,如果实例化另外一个Student时,是无法调用birthday方法的。如果要实现Student的任何实例化对象都能够调用,需要这样做,
Student.birthday= MethodType(birthday, None, Student)
ps:动态绑定是动态语言特有的功能
相关文章推荐
- Python之列表生成式
- Python_学习_字符串和数字
- Python之函数的参数
- Python接口测试(1)
- Python 远程连接服务器
- 简单掌握Python中glob模块查找文件路径的用法
- python IP地址转16进制
- VM虚拟机中caravel的安装和初始化
- python批量预处理图片(CascadeCNN训练前期预处理)
- Python的shutil模块中文件的复制操作函数详解
- Python面向对象编程2
- Python 面向对象编程1
- python之当前标准时间显示
- Ubuntu下python应如何将.py文件当模块进行导入
- spark机器学习笔记:(七)用Spark Python构建聚类模型
- window 环境下的python2.7环境配置和pip的环境配置
- python遍历文件 和如何删除某个文件
- Python新式类继承的C3算法
- 【Python】基于候选数的解数独算法 + 使用wxPython编写程序界面
- pandas聚合和分组运算之groupby