略
若定义函数为函数名(形参1,形参2,形参3=默认值):
则参数传递方法如下表:
名称 | 方法 | 注意事项 |
---|---|---|
位置实参 | 函数名(实参1,实参2,实参3) |
顺序不可颠倒 |
关键字实参 | 函数名(形参1=实参1,形参2=实参2,形参3=实参3) |
顺序可颠倒 |
默认值 | 函数名(实参1,实参2) |
默认值可不写 |
混合使用 | — | 注意代码等效 |
注:使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参
简单值,列表,字典等都可 (详略)
可在函数里面改列表/也可以不改(用切片副本) (详略)
定义函数:函数名(*形参):
注:*形参
代表创立一个空tuple(元组),实参传入元组内
以下是代码:
def make_pizza(*toppings):
"""打印顾客点的所有配料"""
print(toppings)
make_pizza('pepperoni')
make_pizza('mushrooms', 'green peppers', 'extra cheese')
以下是运行效果:
(‘pepperoni’,)
(‘mushrooms’, ‘green peppers’, ‘extra cheese’)
函数名(**形参)
注:**形参
代表创立一个空dict(字典),实参传入字典内
以下是代码:
def build_profile(first, last, **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’}
方法 | 注意事项 |
---|---|
import 模块名 |
调用函数时需要用模块名.函数名() |
from 模块名 import 函数名 |
调用函数直接函数名() |
from 模块名 import 函数名 as 函数名简写 |
调用函数直接函数名简写() |
import 模块名 as 模块名简写 |
调用函数时需要用模块名简写.函数名() |
from 模块名 import * |
调用函数直接函数名() (*代表引入全部函数) |
以下是代码:
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!")
代码 | 解释 |
---|---|
class 类名(): |
定义类 |
def __init__(self,形参1,形参2): |
初始化 |
self.属性1=形参1 |
定义属性 |
def 方法名1(self): |
定义方法 |
.属性
以下是代码:
class Dog():
'''见上文'''
my_dog = Dog('willie', 6)
print("My dog's name is " + my_dog.name.title() + ".")
print("My dog is " + str(my_dog.age) + " years old.")
以下是运行效果:
My dog’s name is Willie.
My dog is 6 years old.
.方法()
以下是代码:
class Dog():
'''见上文'''
my_dog = Dog('willie', 6)
my_dog.sit()
my_dog.roll_over()
以下是运行效果:
Willie is now sitting.
Willie rolled over!
略
方法1 访问修改
方法2 用方法修改
详略
以下是代码:
class Car():
"""一次模拟汽车的简单尝试"""
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title()
def read_odometer(self):
print("This car has " + str(self.odometer_reading) + " miles on it.")
def update_odometer(self, mileage):
if mileage >= self.odometer_reading:
self.odometer_reading = mileage
else:
print("You can't roll back an odometer!")
def increment_odometer(self, miles):
self.odometer_reading += miles
class ElectricCar(Car):
"""电动汽车的独特之处"""
def __init__(self, make, model, year): #只继承了Car
"""初始化父类的属性"""
super().__init__(make, model, year) #必须写成 super().__init__(形参1,形参2) 的形式
my_tesla = ElectricCar('tesla', 'model s', 2016)
print(my_tesla.get_descriptive_name())
以下是运行效果:
2016 Tesla Model S
直接重写
略
类比导入函数 (详略)
例:OrderedDict()
有序字典
以下是代码:
from collections import OrderedDict
favorite_languages = OrderedDict()
favorite_languages['jen'] = 'python'
favorite_languages['sarah'] = 'c'
favorite_languages['edward'] = 'ruby'
favorite_languages['phil'] = 'python'
for name, language in favorite_languages.items():
print(name.title() + "'s favorite language is " +
language.title() + ".")
以下是运行效果:
Jen’s favorite language is Python.
Sarah’s favorite language is C.
Edward’s favorite language is Ruby.
Phil’s favorite language is Python.
更多常用标准库,请点击这里