Python T-02

test05.py

# 定义一个函数 使用def语句
# 规范要求定义函数前后要空两行
# 导入模块或是特定的函数 可以后跟as为其重命名
import test01 as t1
from test06 import say_hi as sh
# from test06 import * 可以导入模块中的所有函数


def say_hello():
    print("hello!")


say_hello()

# 传入参数

"""
def say_name(name):
    print("hello," + name + "!")


user_name = input("请输入你的名字:")
say_name(user_name)
"""

# 可以给函数的形参赋默认值
# 指定形参默认值时 等号两边不要加空格


def say_yes(name="everyone"):
    print("Yes!" + name)


say_yes()
say_yes("lostsakura")

# 使用return返回值

# 返回值可以是字典

# 2018/07/23

# 传入多实参,可使用*前缀


def make_contr(*toppings):
    for topping in  toppings:
        print("-" + topping)


make_contr("a01")
make_contr("a01", "b02", "c03")
# 接受的参数会创建为一个元祖
# 可以同时使用for in循环

# **前缀可以创建一个空字典来存储实参


def build_profile(name, **user_info):
    profile = {}
    profile['name'] = name
    for key, value in user_info.items():
        profile[key] = value
    return profile


user_profile = build_profile("lostsakura", age=18, sex="male")
print(user_profile)

# 使用import语句导入模块
# 使用from...import...可以导入特定模块的特定函数,且调用时无需指明来历
# 使用文件名+点运算符调用
print(t1.message)
sh()

控制台运行结果:

hello!
Yes!everyone
Yes!lostsakura
-a01
-a01
-b02
-c03
{'name': 'lostsakura', 'age': 18, 'sex': 'male'}
It's me
Hi!


test06.py

# say_hi()被导入到test05.py中
def say_hi():
    print("Hi!")

# 类
# 创建一个Dog类 类的开头一般大写
# 使用self传入自身


class Dog():
    # 初始化方法
    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.price = 600

    def sit(self):
        print(self.name.title() + " is now sitting.")

    def roll_over(self):
        print(self.name.title() + "rolled over!")

    def change_price(self, new_price):
        self.price = new_price


my_dog = Dog('willie', 6)
print(my_dog.price)
my_dog.sit()

# 修改属性的值可以使用直接修改法
my_dog.price = 500
print(my_dog.price)
# 使用自定义内部方法修改
my_dog.change_price(450)
print(my_dog.price)

# 类的继承


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):
        return self.make


class ElectricCar(Car):
    def __init__(self, make, model, year):
        super().__init__(make, model, year)


my_e_car = ElectricCar('tesla', 'model s', 2016)
print(my_e_car.get_descriptive_name())

"""
通过在子类中命名完全相同的方法名来重写父类中的方法
实例还可以作为其他实例的属性

实例也可以通过from...import...来导入特定实例(要导入多个类时,使用逗号间隔)

若导入的类在同一模块下有相互关联的类,可以自动地间接关联起来,不用特意导入

也可以直接使用import语句导入整个模块,因为调用时含带了模块名,同时也避免了命名冲突

如果相关联的类保存在不同的模块,单一调用时,需要导入
"""
# Python标准库
# collections

控制台运行结果:

600
Willie is now sitting.
500
450
tesla


2018/07/24

猜你喜欢

转载自blog.csdn.net/qq282465134/article/details/81192864