[Python基础]004.语法(3)

语法(3)


方法

定义

  • 语法 def 方法名(参数):
  • 返回值 return 没有指定返回值的方法,默认返回空值 None

代码

def say(who, dosth):
    '''
    谁做什么
    '''
    print who + ' ' + dosth + '!'
    return

调用

  • 方法名(参数)

      say('AC', 'say hello')

    输出:AC say hello!

  • 方法名(参数名=参数)
    Python解释器能够用参数名匹配参数值,

      say(who='Horse', dosth='run')
      # 或者
      say(dosth='run', who='Horse')       # 顺序不影响

    输出:Horse run!

参数

  • 引用方式传递参数
    除字符串和数字外,Python的其他对象全都采用引用方式传递参数,当参数在方法里被修改时,原始参数也被修改。

      a = [1, 2, 3, 4]
    
      def fun(i):
          a.append(5)
    
      fun(a)
    
      print a

    输出: [1, 2, 3, 4, 5]

  • 默认参数
    在定义方法时,在参数名后加上 =默认值
    这些默认参数是可选的,调用时可以不填,直接使用默认值。

      def say(who, dosth='say hello'):        # dosth定义了默认参数
          '''
          谁做什么
          '''
          print who + ' ' + dosth + '!'
          return
    
      say('I')            # 只要填写一个参数,另一个没写时使用默认参数

    输出: I say hello!

返回 return

跳出方法,返回一个值。

    def add(a, b):
        return a + b

    c = add(1, 2)
    print c

输出: 3

模块

模块就是一个Python文件,后缀名为.py。
将方法,变量,类等定义在模块里,方便被其他程序引用,使用其中定义的功能。

引入模块

  • import
    导入模块,以调用 Python标准库 os 为例。

      import os                   # 引入os模块
      os.mkdir('abc')             # 调用方法,创建abc文件夹
    
      import os.path              # 引入os.path模块
      os.path.isfile('xxx.png')   # 调用方法,判断是否是文件

    导入模块后,需要以 模块名.方法名 来调用模块下面的方法。

  • from ... import ...
    直接从模块中导入方法,变量或类,还是以 os 为例。

      from os import mkdir        # 从os引入mkdir方法
      mkdir('abc')                # 调用方法
    
      from os.path import isfile  # 从os.path引入isfile方法
      isfile('xxx.png')           # 调用方法

    这种方式直接从模块中引入某个方法,在调用时就可以直接用 方法名

  • from ... import * 从模块中导入所有东西。

      from os import *            # 引入os的所有东西
      mkdir('abc')
    
      from os.path import *       # 引入os.path的所有东西
      isfile('xxx.png')
  • as
    模块别名

      import os.path as path      # 引入os.path模块 别名path
      path.isfile('xxx.png')      # 调用方法

    使用别名后,就可以直接用别名来代替模块名。

写模块

写一个模块,其实就是写一个Python文件。

# MyModule.py

def test():                     # 方法
    print 'my module test'

var1 = 10                       # 变量

class C:                        #
    def __init__(self):
        pass

上面就是一个简单的模块 MyModule.py

# main.py

import MyModule         # 引入模块  
MyModule.test()         # 调用test方法
print MyModule.var1     # 模块变量

from MyModule import C  # 导入类

另一个模块调用 MyModule 模块的方法。

模块名称 __name__

每个模块都有一个名称,可以使用 __name__ 属性来获得。
最常用的地方就是作为main方法入口。

# MyModule.py

# ...模块定义...

if __name__ == '__main__':          
    # 当模块名是 __main__ 时,执行
    print 'MyModule main'

当直接执行这个模块时,其模块名就是 __main__
当该模块是用 import 导入时,就不会执行。

dir()

dir() 方法用来找到模块内所有东西的名称。

import os.path
dir(os.path)

返回一个字符串列表:

    ['__all__', '__builtins__', '__doc__', '__file__', '__name__', 
    '__package__', '_joinrealpath', '_unicode', '_uvarprog', '_varprog', 
    'abspath', 'altsep', 'basename', 'commonprefix', 'curdir', 'defpath', 
    'devnull', 'dirname', 'exists', 'expanduser', 'expandvars', 'extsep', 
    'genericpath', 'getatime', 'getctime', 'getmtime', 'getsize', 'isabs', 
    'isdir', 'isfile', 'islink', 'ismount', 'join', 'lexists', 'normcase', 
    'normpath', 'os', 'pardir', 'pathsep', 'realpath', 'relpath', 'samefile', 
    'sameopenfile', 'samestat', 'sep', 'split', 'splitdrive', 'splitext', 
    'stat', 'supports_unicode_filenames', 'sys', 'walk', 'warnings']

 

本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4512799.html

 

原文地址:https://www.cnblogs.com/superdo/p/4512799.html