python学习(5)面向对象编程
来源:互联网 发布:js输出对象的内容 编辑:程序博客网 时间:2024/06/06 00:35
1.定义类与创建实例
用class关键字定义类,类名后 跟括号,括号中是继承的类的类名,没有继承的也要从object类继承。
class Person(object):
Pass
创建类的实例用: 类名+()。
xiaoming = Person()
xiaohong = Person()
Python是动态语言,实例的属性也是可以直接就加的,像下面这样:
xiaoming = Person()
xiaoming.name = 'Xiao Ming'
2.初始化
定义类时可以用__init__()方法进行初始化,该方法的第一个参数必须是self(习惯上这样),后面可以自由添加参数。
class Person(object):
def __init__(self, name, gender, birth):
self.name = name
self.gender = gender
self.birth = birth
3.访问限制
双下划线开头(__)的属性无法被外部访问。
"__xxx__"的形式定义的为特殊属性,可以被外部访问。
4.类属性
绑定在类上的属性为类属性,类属性有且只有一份。
class Person(object):
address = 'Earth'
访问时不需要创建实例:
print Person.address
当实例属性与类属性同名时,实例属性的优先级高,类属性被屏蔽。
5.实例方法
实例方法就是在类中定义的函数,其第一个参数永远都是self,指向调用该方法的实例本身。调用时self不需要手动传入。
class Person(object):
def __init__(self, name):
self.__name = name
def get_name(self):
return self.__name
p1 = Person('Bob')
print p1.get_name()
在python中方法也是属性,可以动态的添加到实例上,须用到types.MethodType()方法。
import types
def pri(self):
print self
class D(object):
pass
d = D()
d.pri = types.MethodType(pri, d, D)
d.pri()
6.类方法
通过在方法定义前标记一个@classmethod,把该方法将绑定到类上。类方法第一个参数传入类本身,不能使用任何实例属性。
class Person:
@classmethod #类方法
def classMethod(cls):
print("class method")
p = Person("Sam")
p.classMethod()
Person.classMethod()
输出:
class method
class method
- python学习(5)面向对象编程
- python学习笔记5 面向对象编程
- Python学习 (五 面向对象编程)
- Python学习 面向对象编程
- Python学习----面向对象编程
- python面向对象编程学习
- 【5】Python面向对象编程
- python面向对象编程(5)
- Python简明教程学习笔记5--面向对象编程
- 廖雪峰Python教程学习笔记5-面向对象编程
- Python学习 面向对象编程(二) 随机序列迭代器
- python的学习(二十)--面向对象编程
- Python学习14:面向对象编程(一)
- Python学习14:面向对象编程(三)
- Python学习14:面向对象编程(四)
- python学习笔记(三)之面向对象编程
- Python之学习笔记(面向对象编程)
- Python学习 (六 面向对象高级编程)
- 一次dialog导致的内存泄漏
- 密码爆破工具:Medusa(美杜莎)-操作说明
- redis和memcached的区别
- 自己实现字符串转数字
- svn错误问题处理could not connect to server
- python学习(5)面向对象编程
- 系统架构随记
- matlab神经网络工具箱的使用
- PAT (Advanced Level) Practise 1015 Reversible Primes (20)
- 设置单机防火墙的一个实例
- hive建表以及测试
- Elasticsearch-4种内置分析器
- iOS中的常用数据持久化
- MarkDownPad-Pro体验