1.2 python入门之函数与类

函数

  • 将函数存储在称为模块的独立文件中,让程序组织有序
def doA():
    """文档字符串解释内容"""
    print("hello")
 
doA() 
  • 文档字符串:描述函数作用

传递实参

位置实参

  • 类比Java的函数调用,形参和实参根据位置一一对应

关键字实参

  • 传递给函数的是名称-值对
  • saySth(name=‘jack’,sth=‘hello’)
  • 可以定义函数参数的默认值
def saySth(name,sth='hello'):       #定义时先列出没有默认值的形参,然后是有默认值的形参
   print(name)
   print(sth)

saySth(name='jack')
等价于
saySth(jack)
注意不能这样定义 def saySth(sth='hello',name),如果这样,当saySth(jack)时,调用采用位置方式,会将jack对应为sth,不对呀   

  • if非空字符串为true
  • 若传递参数为列表,不希望在函数中改变列表内容,则传递列表的切片即可
    • function_name(list_name[:])

传递任意数量的实参

def make_pizza(*toppings):
   print(toppings)
  • 星号表示创建一个名字为toppings的空元组,然后将传入的任意数量实参放入其中
  • 结合使用位置实参和任意数量的实参,参照Java语法,任意数量放在最后

使用任意数量的关键字实参

def build(first,last,**user_info)
   profile={}
   for k,v in user_info.items():
      print(k)
      print(v)

res = build("alb","est",loc="beijing",field='maths')
  • 两个星号表示创建字典,然后将传入的键值对放入其中

将函数存储在模块中

  • 将代码块和主程序分离
  • 可将函数存储在叫模块的独立文件中,再将模块导入到主程序中
import pizza  #表示导入pizza.py模块文件中的所有函数
pizza.doSth()   #调用模块中的方法

from pizza import doSth,saySth
saySth()
doSth()

from pizza import doSth as ds   #使用函数别名
ds()

from pizza as pz #使用模块别名
from pizza import *  #导入所有函数,然后可不指定模块名,直接调用
  • 函数命名:小写以及使用下划线
  • 形参指定默认值时,等号两边没有空格,函数调用中的关键字实参时也遵循这样约定

class Dog():   #类的首字母大写,类的实例名字小写,对于Python2来说,定义为class Dog(object)
   def __init__(self,name,age):   #构造方法,构造时自动传入实参self,self要放在最前面
       self.name  = name
       self.age = age
     
   def sit(self):   
      print(self.name)

class  BigDog(Dog):   # BigDog类继承自Dog类
      def __init__(self,name,age):
         super().__init__(self,name,age)  #相当于Java的super(name,age)
# 方法的重写类比Java,名字一样,不再赘述
  • 类也可以存储在模块中
  • 继承,构造方法原理同Java

导入类

法1

  • 将Car类存在某个模块文件中,如car.py中
  • 导入该类
    • from car improt Car
  • 直接类名来调用

法2

  • 全部导入

    • import car 等价于 from car import *
  • 然后模块.类名来调用

  • 类可以分散到多个模块(父类和子类)或者同一个模块存储不同的类

标准库

  • 标准库本质是一组模块
  • 例如有序字典: from collections import OrderedDict
  • 一个空行分隔方法,两个空行分隔模块中的不同类
  • 自己模块和标准库中模块的import中间有一个空行
  • 命名约定:类驼峰命名法,且每个单词首字母大写,实例名和模块名采用小写,单词之间加下划线
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值