我是靠谱客的博主 丰富奇迹,最近开发中收集的这篇文章主要介绍python 学习笔记--使用模块,类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#使用模块
##使用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 学习笔记--使用模块,类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(85)

评论列表共有 0 条评论

立即
投稿
返回
顶部