python基础(三)

模块相关基础1.1模块的格式:#!/usr/bin/env python3#-*- coding:utf-8 -*-'这是一个注释'__author__='lnssm'import sysdef test(): args=sys.argv if len(args)==1: print('hello world') elif len(args)==2: print('he...
摘要由CSDN通过智能技术生成
模块相关基础
1.1模块的格式:
#!/usr/bin/env python3
#-*- coding:utf-8 -*-
'这是一个注释'
__author__='lnssm'
import sys
def test():
	args=sys.argv
	if len(args)==1:
		print('hello world')
	elif len(args)==2:
		print('hello %s'%args[1])
	else:
		print('to many argument!')
if __name__='__main__':
	test()

解释:

  • 第一行和第二行是标准注释,第一行注释可以让这个文件直接在unix/linux/mac上运行,第二行是说明使用utf-8编码

  • 第三行是一个字符串,表示模块的注释,任何模块代码的第一个字符串出现都被当作是模块的文档注释

  • 第4行使用__author__变量,把作者写进去,注意这是两个划线

  • 第5行是引入模块,导入sys模块后,我们就有了变量sys指向该模块,利用sys这个变量,就可以访问sys模块的所有功能。sys模块有一个argv变量,用list存储了命令行的所有参数。argv至少有一个元素,因为第一个参数永远是该.py文件的名称,例如:

    运行python3 hello.py获得的sys.argv就是['hello.py']

    运行python3 hello.py Michael获得的sys.argv就是['hello.py', 'Michael]

  • 第6行是真正的写的功能

    注意下

    if __name__='__main__':
    	test()
    

    虽然php没有相应的入口函数,但是像c,java,go等都有入口函数main,你就可以把它作为是,就行了,引申一下就是,就我们在命令行执行这个模块文件时,python解释器把一个特殊变量__name__置为__main__

1.2 作用域

在一个模块中,我们可以定义多个变量与函数,但有些函数或变量,只是为这个模块自己使用的,不想让别的模块调用,这个时候作用域就出现了

格式:使用_变量或者__函数来表示,相当于一个private函数或者变量了,但是在python中,没有绝对的private变量,也就是说你用了也不会有什么错,只是我们不用罢了

def _private_1(name):
	return 'hello %s'%name
def _private_2(name):
	return 'hello %s'%name

2.1 安装第三方库

a.在python中使用pip包管理工具进行操作

第三方库资源官网:pypi.python.org

pip使用:

>>> pip help #查看帮助信息
>>> pip install 包名  安装包
>>> pip uninstall 包名   卸载包

还可以安装 anaconda官网提供的gui安装包,常用的包都在里面

b. 模块搜索路径

默认情况下,python解释器会搜索当前目录,所有已安装的内置模块和第三方模块,搜索路径都会放在sys模块中path变量中

>>> import sys
>>> sys.path

如果我们要添加自己的搜索目录,有两种方法

  • 直接修改sys.path

    >>> import sys
    >>> sys.path.append('/usrs/my_py_scripts')
    
  • 设置环境变量PYTHONPATH,该环境变量的内容会被自动添加到模块搜索路径中。设置方式与设置Path环境变量类似。注意只需要添加你自己的搜索路径,Python自己本身的搜索路径不受影响。

2. 面向对象编程(oop)
2.1 类和实例:
  • 定义:它和php也差不多,定义类通过class关键字,它们也有封装,继承,多态三大特型
#定义一个类
class Student(object):
	

class后面紧接着是类名,类名通常是大写开头的单词,紧接着是(object) 表示该类是从哪个类继承过来的

  • 实例: 通过类名+()的形式来实现
>>> student=Student()
  • 如果在创建类的时候初始化参数,python提供了一个__init__(self,name,age)php中的__construct()功能差不多,都是初始化一些数据的

    class Student(object):
    	def __init__(self,name,age):
    		self:name=name
    		self:age=age
    

    __init__()的第一个参数永远是self,表示创建的实例本身,当然这个值不用传

2.1 访问限制,

如何实现在class内部,属性和方法,不能通过外部调用直接赋值呢?

可以在方法或者属性前面添加__

class Student(object):
	def __init__(self,name,age):
		self.__name=name
		self.__age=age

这样在外面就不可以访问了,如果想修改里面的值可以这样来操作

class Student(object):
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值