python自学笔记9之模块和类

自己写一个模块
我们以内建的sys模块为例,编写一个hello的模块:

__author__='zerof'

import sys

print('name is:',__name__)  
def test():
    args=sys.argv
    if len(args)==1:
        print('hello,world')
    elif len(args)==2:
        print('hello, %s!' %args[1])
    else:
        print('too many arguments!')
    print(sys.argv,__name__)    
if __name__=='__main__':
    test()

第1行和第2行是标准注释,第1行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行,第2行注释表示.py文件本身使用标准UTF-8编码;

第4行是一个字符串,表示模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释;

第6行使用$__author__变量把作者写进去,这样当你公开源代码后别人就可以瞻仰你的大名;

以上就是Python模块的标准文件模板,当然也可以全部删掉不写,但是,按标准办事肯定没错。

比较:看清楚name
在spyder中直接运行hello922.py结果:

hello,world
['G:/Program Files/py/anacode/aworks/hello922.py'] __main__

区别是运行了test函数,所以打印了hello, word,因此可以通过直接运行模块文件调用测试函数,而将模块交付时,通过import 模块名 的方式,内部测试函数不会被调用,
为什么呢?
看最后那个if判断,关键在__name__,当直接运行模块原文件时,其值为__main__,当导入模块时,其值为模块名。

查看安装了某些模块,可以使用pip list,前提是,你已经安装了pip,安装pip是在cmd命令里面进行的,先进入你python安装的目录(这个应该没有问题吧,就是cd..),然后直接easy_install pip就完成了。

关于自定义类
主要了解一个函数:Python中,__init__()
对象的“构造函数”,负责在对象初始化时进行一系列的构建操作

对于用于特殊场合的类,可能要求在对象创建时,进行连接数据库、连接FTP服务器、进行API验证等操作,这些初始化操作,都可以封装在__init__()方法中进行

__init__方法使用如下规则定义:

class ex:

def __init__(self): 

    pass  

__init__方法必须接受至少一个参数即self,Python中,self是指向该对象本身的一个引用,通过在类的内部使用self变量,类中的方法可以访问自己的成员变量,简单来说,self.varname的意义为”访问该对象的varname属性“

当然,__init__()中可以封装任意的程序逻辑,这是允许的,__init__()方法还接受任意多个其他参数,允许在初始化时提供一些数据,例如,对于刚刚的worker类,可以这样写:

class worker:

def __init__(self,name,pay): 

    self.name=name 

    self.pay=pay  

这样,在创建worker类的对象时,必须提供name和pay两个参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z_shsf

来包瓜子嘛,谢谢客官~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值