《Python编程:从入门到实践》笔记

Day_4_明天务必开始项目

2017-11-14  本文已影响0人  开发猛男

Start from P132
昨天太懒了,我透你吗,打扰我时间的狗贼出门吃饭必涨价!

第8章 函数

使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参。
这让Python依然能够正确地解读位置实参。

8.1.2 实参和形参

注意:大家有时候会形参、实参不分,因此如果你看到有人将函数定义中的变量称为实参或将函数调用中的变量称为形参,不要大惊小怪。

8.2 传递实参

8.2.1 位置实参

8.2.2 关键字实参

关键字实参是在调用函数时,传给函数名称—值对。
在调用函数时,忽略顺序,输入形参名+值就可调用。


def describe_pet(animal_type, pet_name):
   """显示宠物的信息"""
   print("\nI have a " + animal_type + ".")
   print("My " + animal_type + "'s name is " + pet_name.title() + ".")

describe_pet(animal_type='hamster', pet_name='harry') 

8.2.3 默认值

又名可选参数,调用时有就写,没有就不写。

注意 使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出默认值的实参。这让Python依然能够正确地解读位置实参。

8.4.2 禁止函数修改列表

在调用函数时,传入列表的副本,这样函数不会修改原列表。
function_name(list_name[:])
虽然不知道有啥用。真的很鸡肋。
因为教材针对此所给的例子、习题,我完全可以在不用副本的情况下避免修改原列表。

8.5 传递任意数量的实参

def make_pizza (*toppings):    #形参前加一个星号
   """打印顾客点的所有配料"""
   print(toppings)   

make_pizza('pepperoni')
make_pizza('mushrooms', 'green peppers', 'extra cheese') 

('pepperoni',)
('mushrooms', 'green peppers', 'extra cheese') 

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


def build_profile(first, last, **user_info):     #user_info 作为字典传入
 """创建一个字典,其中包含我们知道的有关用户的一切"""
    profile = {}
    profile['first_name'] = first
    profile['last_name'] = last
    for key, value in user_info.items(): 
        profile[key] = value
    return profile
user_profile = build_profile('albert', 'einstein',location='princeton',field='physics')
    #注意,传参时用键=值格式传入,键不用引号''
print(user_profile) 

{'first_name': 'albert', 'last_name': 'einstein','location': 'princeton', 'field': 'physics'} 

8.6.3 使用 as 给函数指定别名

import pizza as p
将pizza模块简写成p


8.6.5 导入模块中的所有函数

8.8 小结

给形参指定默认值时,等号两边不要有空格:
def function_name(parameter_0, parameter_1='default value')
对于函数调用中的关键字实参,也应遵循这种约定:
function_name(value_0, parameter_1='value')

第9章 类

9.1.1 创建 Dog 类

class Dog():
   """一次模拟小狗的简单尝试"""

   def __init__(self, name, age):
 """初始化属性name和age"""
   self.name = name
   self.age = age
  
   def sit(self):
 """模拟小狗被命令时蹲下"""
 print(self.name.title() + " is now sitting.")
   def roll_over(self):
 """模拟小狗被命令时打滚"""
   print(self.name.title() + " rolled over!") 
  1. 方法__init__(self,name,age)

End in P159

上一篇下一篇

猜你喜欢

热点阅读