定义:类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。
class Person(object): #类名第一个字母大写(object为所有类父类)
#属性:用名词
__name = 'chuck' #类似C++的private变量,双下划线,仅自己可用
height = 176 #类似C++的public变量,公用
_weight = 80 #类似C++的protect变量:仅可子类和自己函数调用
one = Person() #实例也可以作为属性,调用属性实例的方法self.one.check()
#类内方法:用动词
def __init__(self , name): # 实例初始化方法,若没传入参数,则使用类内默认参数
self.__name = name #__init__方法不能包含return语句
def _check(self): #内部方法
pass
def show_height(self): #方法不传参数也要填self
print('name is',self.__name,'hight is',self.height)
def get_default_weight(self):
return self.__weight #有返回值的方法
def __call__(self): # 实例本身上调用默认函数,Python类的特殊函数
print('My name is %s.' % self.name)
注:
p = Person('duke') #创建实例p,数据类型为class Person,自动调用__init__方法向p里塞属性
p.show_height() #调用类的方法(无返回值)
>>>'name is duke height is 176'
print(p.height) #类外使用类内的public变量
>>>176
p.height = 180 #实例重新赋值,实例此变量变化,其他实例及类本身不变
print(p.height)
>>>180
del p.height #删除实例属性,类的属性就恢复了
print(p.height)
>>>176
num = p.get_default_weight() #调用类的方法(有返回值)
print(num)
>>>80
class 子类名(父类名):
,例:class Chuck(Name):
class Male(Person): # Male是Person的子类
#类内方法:用动词
def __init__(self , name , age): # 实例初始化方法
Person.__init__(self , name) # 先调用父类初始化方法,继承其属性
self.age = age # 赋值自己的属性
class B(A):
pass
issubclass(B,A)
isinstance(b_1,B)
定义:一个独立的程序文件hello.py
,hello
即为模块名,可以在其他程序中导入调用
常规
#!/usr/bin/env python3.6 #Linux环境中可使用命令 ./程序文件名 的方法执行
# -*- coding: utf-8 -*- #表示.py文件本身使用标准UTF-8编码
' a test module ' #表示模块的文档注释
__author__ = 'chucksun' #使用__author__变量把作者写入程序
模块语句(含improt、类名、函数名)
if __name__=='__main__': #测试部分,当模块被外部程序import时,此语句不执行
test() #测试函数,像自动化输入一些参数测试模块
调用
import 模块名 #方法1,模块名不需要加后缀名
import 模块名 as 别名 #方法2,推荐
from 模块名 import 函数名或类名 #方法3,同时导入命名空间了,import后可接多个名称,逗号分开
#调用模块中函数
变量 = 模块名.函数名或类名() #方法1
变量 = 别名.函数名或类名() #方法2
变量 = 函数名或类名() #方法3
模块文档注释
import 模块名
模块名.__doc__
模块源代码
import 模块名
模块名.__file__
语句块1
if __name__ == '__main__': #在此文件以模块形式,被导入到其他程序源码中时,屏蔽语句块2
语句块2 #此处通常放置模块的测试语句,测试本模块功能
import sys
sys.path #以列表形式显示Python搜索路径,有个空目录,代表当前目录
sys.path.append('C:\\') #临时增加搜索路径(关闭shell即消失)
包:一种管理 Python 模块命名空间的形式,模块管理
import 包名.模块 as f
,程序内使用f.函数名()
或c = f.类名()
from 包名.模块 import 函数名1,函数名2,类名1
,程序内使用函数名1()
,c = 类名1()
from 包名.子包名1.模块 import 函数名1
,程序内使用函数名1()
点此跳转到模块简介单元
上一篇:Python极简笔记(6)—异常、三神器