概述
#使用模块
##使用sys
1.代码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
' a test module '
__author__ = 'Bernicechl'
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('Too many arguments!')
if __name__=='__main__':
test()
若出现报错
>>> python module.py
File "<stdin>", line 1
python module.py
^
SyntaxError: invalid syntax
则说明没有跳出python交互环境,要退出交互环境再操作
(1)sys模块有一个argv变量,用list存储了命令行的所有参数。argv至少有一个元素,因为第一个参数永远是该.py文件的名称
运行python module.py获得的sys.argv就是[‘module.py’];
如运行
python module.py Bernicechl
则输出
Hello, Bernicechl!
获得的sys.argv就是
['module.py', Bernice'l]
2.当我们在命令行运行module模块文件时,Python解释器把一个特殊变量__name__置为__main__,而如果在其他地方导入该hello模块时,if判断将失败,因此,这种if测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试。
如果启动Python交互环境,再导入module
模块(文件名)
即>>> import hello
导入时,没有打印Hello, word!,因为没有执行test()函数。
调用module.test()时,才能打印出Hello, word!
即module.test()
#类
##类的实例
1.简单代码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
class Student(object):
def __init__(self,name,score):
self.name = name
self.score = score
def get_grade(self):
if self.score >= 90:
return 'A'
elif self.score >= 60:
return 'B'
else:
return 'C'
lisa = Student('Lisa', 99)
bart = Student('Bart', 59)
print(lisa.name, lisa.get_grade())
print(bart.name, bart.get_grade())
ps:__init__
的下划线德有两个!
2.如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问
即:
self._name = name
self._score = score
3.注意下面的这种错误写法:
>>> bart = Student('Bart Simpson', 59)
>>> bart.get_name()
'Bart Simpson'
>>> bart.__name = 'New Name' # 设置__name变量!
>>> bart.__name
'New Name'
表面上看,外部代码“成功”地设置了__name
变量,但实际上这个__name
变量和class内部的__name
变量不是一个变量!内部的__name
变量已经被Python解释器自动改成了_Student__name
,而外部代码给bart新增了一个__name
变量。不信试试:
>>> bart.get_name() # get_name()内部返回self.__name
'Bart Simpson'
4.实例
类属性和实例属性其实是两个不同的对象,因为在将类Student赋值给s时,其实s就好像是Student类的一个子类,继承Student的全部,因为他们的内存地址并不是指向同一个位置
>>> class Student(object):
name = 'Student'
>>> s=Student()
>>> id(Student)
42362760
>>> id(s)
45692856
最后
以上就是丰富奇迹为你收集整理的python 学习笔记--使用模块,类的全部内容,希望文章能够帮你解决python 学习笔记--使用模块,类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复