* 创建类
#!/usr/bin/env python
# -*- coding: utf-8 -*-
class Person:
def __init__(self,name,sex):
self.name=name
self.sex=sex
info = Person("John","male")
print "info.name=",info.name
print "info.sex=",info.sex
用一个class关键词,后面跟一个类名
def __init__(self) 是构造方法
* self
在构造函数中的第一个参数self, 就是起到了这个作用——接收实例化过程中传入的所有数据
self应该就是一个实例( 准确说法是应用实例) , 因为它所对应的就是具体数据
很像其它语言中的this
* 子类
#!/usr/bin/env python
# -*- coding: utf-8 -*-
class Person:
def __init__(self, name, lang, email):
self.name = name
self.lang = lang
self.email = email
def author(self):
return self.name
class Programmer(Person): #继承父类Person
def __init__(self, name, lang, email, system, website):
Person.__init__(self,name,lang,email) #将Person.__init__()的功能继承到这里
self.system = system #子类中不同于Person父类部分
self.website = website
def pythoner(self):
pythoner_list = [ self.name, self.lang, self.email, self.system, self.website ]
return pythoner_list
if __name__=="__main__":
writer = Person("qiwsir","Chinese","[email protected]")
python = Programmer("qiwsir","Python","[email protected]","Ubutun","qiwsir.github.io")
print "My name is:%s"%writer.author()
print "I write program by:%s"%python.pythoner()[1]
* 命名空间
import os
os 就是命名空间
* 私有方法
不能从它们的模块外面被调用
私有类不能从它们的类外面调用
私有属性不能从它们的类外面调用
类方法,属性名以两个下划线开始(但不是结束),它是私有的
#!/usr/bin/env python
# -*- coding: utf-8 -*-
class Person:
def __init__(self,name):
self.name = name
print self.name
def __work(self,salary):
print "%s salary is: %d"%(self.name,salary)
def worker(self):
self.__work(500) #在类内部调用私有方法
if __name__=="__main__":
officer = Person("Tom")
officer.worker()
* 专有方法
以双划线开头,又以双划线结尾