python—实例3

1.查询模块:按目录依次查找需要导入的模块,模块目录一般在:/usr/lib64/python2.7

In [2]: sys.path
Out[2]:
['',
'/usr/bin',
'/usr/lib64/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg',
'/usr/lib64/python27.zip',
 '/usr/lib64/python2.7',
'/usr/lib64/python2.7/plat-linux2',
'/usr/lib64/python2.7/lib-tk',
'/usr/lib64/python2.7/lib-old',
'/usr/lib64/python2.7/lib-dynload',
'/usr/lib64/python2.7/site-packages',
'/usr/lib/python2.7/site-packages',
'/usr/lib/python2.7/site-packages/python_memcached-1.58-py2.7.egg',
'/usr/lib/python2.7/site-packages/IPython/extensions',
'/root/.ipython']

2.自定义模块目录

方法一:sys.path.append(),一般加在目录列表最后

In [3]: sys.path.append("/root/python/")
In [4]: sys.path
Out[4]:
['',
'/usr/bin',
'/usr/lib64/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg',
'/usr/lib64/python27.zip',
'/usr/lib64/python2.7',
'/usr/lib64/python2.7/plat-linux2',
'/usr/lib64/python2.7/lib-tk',
'/usr/lib64/python2.7/lib-old',
'/usr/lib64/python2.7/lib-dynload',
'/usr/lib64/python2.7/site-packages',
'/usr/lib/python2.7/site-packages',
'/usr/lib/python2.7/site-packages/python_memcached-1.58-py2.7.egg',
'/usr/lib/python2.7/site-packages/IPython/extensions',
'/root/.ipython',
 '/root/python/']

方法二:修改环境变量,一般加在目录列表前面

vim /root/.bashrc   # 加入 export PYTHONPATH=/root/python
source /root/.bashrc  # 刷新

例子:统计一个文件,行数、单词数、字符数(和wc命令相同效果)

说明:为了避免使用split切割之后,最后多出一个空字符串,而使用count()

#/usr/bin/env python
def count(s):
char = len(s)
words = len(s.split())
lines = s.count("\n")
print lines,words,char
file1 = open("/etc/passwd","r")
s = file1.read()
count(s)

3.脚本形式,导入模块,脚本名字不能是数字,会产生一个编译文件

例子:

#!/usr/bin/env python
import wc

说明:目录下生产编译文件:wc.pyc


4.py和wc.py的__name__内置变量不一样,前者是wc,或者是__main__,修改wc.py,执行自己时,输出自己的结果,被调用时,执行不显示源结果:

wc.py:

#/usr/bin/env python
def count(s):
char = len(s)
words = len(s.split())
lines = s.count("\n")
print lines,words,char
if __name__ == "__main__":
file1 = open("/etc/passwd","r")
s = file1.read()
count(s)

test.py:

#!/usr/bin/env python
import wc
s = open("/root/python/10.py","r").read()
wc.count(s)

5.包的形式,导入模块

四种导入方法:在包目录dir下创建一个__init__.py空文件

方法一:

from dir import wc
wc.count("abc")

方法二:

import dir.wc
dir.wc.count("abc")

方法三:

from dir.wc import count
count("abc")

方法四:别名

from dir.wc import count as count
count("abc")


6.面向对象编程:python、java、C++;面向过程编程:C、函数式编程、shell

类的(静态)属性:(人类的五官,理解为变量)

类的(动态)方法:(人类吃穿住行,理解为一个函数)

对象:类的实例化,之后才能有属性和方法


7.类的创建

类的方法中,至少有一个参数self

调用属性时,不带括号

调用方法时,使用括号;方法调用属性时,至少有一个self参数

属性调用其他方法:类名.属性名

例子:

class People():
color = "yellow"
def think(self):
self.color = "black"
print ("My color is %s "% (self.color))
ren = People()        # 类的实例化
print ren.color        # 类的属性外部调用
ren.think()          # 类的方法外部调用,如加上print,则多一个默认return值none

运行结果:

yellow

My color is black

8.私有属性在定义的类中的内部函数中被调用

例子:

class People():
color = "yellow"
__age = 27
def think(self):
self.color = "black"
print self.__age                         # 内部函数调用类的私有属性,外部函数不能直接调用
print ("My color is %s "% (self.color))
ren = People()
print ren.color
ren.think()

9.外部调用私有属性(格式:实例化名._类名属性名),一般只是测试用

例子:

class People():
color = "yellow"
__age = 27
def think(self):
self.color = "black"
print self.__age
print ("My color is %s "% (self.color))
ren = People()
print ren.color
ren.think()
print ren._People__age          # 外部调用私有属性

10.类的方法

公有方法:内部和外部都可以调用

私有方法:内部函数调用

动态方法:classmethod()函数处理,没有被调用的类的其他参数不会加载进内存中

静态方法:

方法的定义和函数一样,但是需要把self作为第一个参数,如果还是有其他参数,继续加上;类实例化之后,采用“类名.方法名()”调用

例子1:私有方法调用

class People():
color = "yellow"
__age = 27
def __think(self):
self.color = "black"
print self.__age
print ("My color is %s "% (self.color))
def test(self):
self.__think()           # 类的私有方法调用
ren = People()
ren.test()              # 类的私有方法调用

例子2:动态方法调用

class People():
color = "yellow"
__age = 27
def __think(self):
self.color = "black"
print self.__age
print ("My color is %s "% (self.color))
def test(self):
print ("Testing...")
cm = classmethod(test)        # 动态方法定义
ren = People()
ren.cm()                  # 动态方法调用

例子3:静态方法调用:

类函数不带self参数,该函数使用staticmethod()函数处理(如果不处理,缺少self,,调用时会报错),加载关于这个类的所有东西

class People():
color = "yellow"
__age = 27
def __think(self):
self.color = "black"
print self.__age
print ("My color is %s "% (self.color))
def test():                  # 内部函数,不带self
print ("Testing...")
#print People.color             # 因为没有self,不能调用该类的属性
cm = staticmethod(test)          # 静态方法定义
ren = People()
ren.cm()                    # 静态方法调用

例子4:加装饰器,只对下面的一个函数起作用,就可以使用类的方法调用了

class People():
color = "yellow"
__age = 27
def __think(self):
self.color = "black"
print self.__age
print ("My color is %s "% (self.color))
@classmethod                # 加装饰器
def test(self):              # 带self
print ("Testing...")
@staticmethod               # 加装饰器
def test1():                # 不带self
print ("Testing1..")
ren = People()
People.test()                # 类的方法调用
People.test1()               # 类的方法调用
时间: 2024-10-09 01:18:39

python—实例3的相关文章

使用docker安装部署Spark集群来训练CNN(含Python实例)

使用docker安装部署Spark集群来训练CNN(含Python实例) 本博客仅为作者记录笔记之用,不免有很多细节不对之处. 还望各位看官能够见谅,欢迎批评指正. 博客虽水,然亦博主之苦劳也. 如需转载,请附上本文链接,不甚感激! http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器,每台有8个tesla-GPU,然而平时做实验都只使用了其中的一个GPU,实在暴遣天物! 于是想用spark来把这些GPU都利用起来.听闻d

【转载】python实例手册

今天西爬虫的时候遇到了问题,在网上不停地查找资料,居然碰到两篇好文章: 1.python实例手册   作者:没头脑的土豆 另一篇在这:shell实例手册 python实例手册 #encoding:utf8 # 设定编码-支持中文 0说明 手册制作: 雪松 更新日期: 2013-12-19 欢迎系统运维加入Q群: 198173206 # 加群请回答问题 请使用"notepad++"打开此文档,"alt+0"将函数折叠后方便查阅 请勿删除信息,转载请说明出处,抵制不道德

Python实例 -- 爬虫

1 #coding="utf-8" 2 3 import urllib2 4 import re 5 import threading 6 import time 7 8 """ 9 抓取代理发布页的ip和port10 http://www.xici.net.co/nn/%d 11 """ 12 13 proxylist = [] 14 15 16 def get_proxy_from_cnproxy(): 17 global

python实例手册

python实例手册 #encoding:utf8 # 设定编码-支持中文 0说明 手册制作: 雪松 更新日期: 2013-12-19 欢迎系统运维加入Q群: 198173206 # 加群请回答问题 请使用"notepad++"打开此文档,"alt+0"将函数折叠后方便查阅 请勿删除信息,转载请说明出处,抵制不道德行为. 错误在所难免,还望指正! # python实例手册下载地址: http://hi.baidu.com/quanzhou722/item/cf447

【NLP】Python实例:基于文本相似度对申报项目进行查重设计

Python实例:申报项目查重系统设计与实现 作者:白宁超 2017年5月18日17:51:37 摘要:关于查重系统很多人并不陌生,无论本科还是硕博毕业都不可避免涉及论文查重问题,这也对学术不正之风起到一定纠正作用.单位主要针对科技项目申报审核,传统的方式人力物力比较大,且伴随季度性的繁重工作,效率不高.基于此,单位觉得开发一款可以达到实用的智能查重系统.遍及网络文献,终未得到有价值的参考资料,这个也是自然.首先类似知网,paperpass这样的商业公司其毕业申报专利并进行保密,其他科研单位因发

第一个python实例--监控cpu

1 #第一个python实例:监控cpu 2 #/bin/bash/env Python 3 from __future__ import print_function 4 from collections import OrderedDict 5 import pprint 6 7 def CPUinfo(): 8 ''' Return the information in /proc/CPUinfo 9 as a dictionary in the following format: 10

python实例31[列出目录下所有的文件到txt]

代码: (使用os.listdir) import os def ListFilesToTxt(dir,file,wildcard,recursion):    exts = wildcard.split(" ")    files = os.listdir(dir)    for name in files:        fullname=os.path.join(dir,name)        if(os.path.isdir(fullname) & recursion

Python实例31[批量对目录下文件重命名]

经常会遇到下载的文件或电子书,名字中间都包含了一些网址信息,实际使用中由于名字太长不方便,下面的脚本使用正则表达式来对目录下的所有文件重命名:例如: 修改前:[大家网]Mac OS X for Unix Geeks[www.TopSage.com].mobi修改后:Mac OS X for Unix Geeks.mobi python代码如下 import osimport re def rename_dir(dir,regex,f):  if not os.path.isdir(dir) or

python实例31[生成随即的密码]

代码: import randomimport stringimport time # strong.high = 3  #random for the whole passwd#storng.middle = 2  # include one special sign#strong.ow = 1  # just include characters or digits def mkpassByRandom(size=8, strong = 2):    chars = []    chars.

Python实例浅谈之五Python守护进程和脚本单例运行

一.简介 守护进程最重要的特性是后台运行:它必须与其运行前的环境隔离开来,这些环境包括未关闭的文件描述符.控制终端.会话和进程组.工作目录以及文件创建掩码等:它可以在系统启动时从启动脚本/etc/rc.d中启动,可以由inetd守护进程启动,也可以有作业规划进程crond启动,还可以由用户终端(通常是shell)执行. Python有时需要保证只运行一个脚本实例,以避免数据的冲突. 二.Python守护进程 1.函数实现 #!/usr/bin/env python #coding: utf-8