day4·模块、包与矩阵列表变换

模块 

每一个.py文件即是模块,封装了类、方法、变量属性等,像一个工具箱一样提供给外界使用

 新建一个package/或者目录+ __init__.py文件.

同一个包下面不允许出现一致的文件名

不同包下可以允许出现一致的文件名

 导入模块

两种方式

1.import 包名.模块名(如果导入的模块跟当前工作目录处于同一个包下面可以不加包名)

使用包下面的提供的类、方法、全局变量等,用模块名. 名称的方式

2.from  包名.模块名 import  全局变量/类/函数等

导入模块时 会运行模块的可执行代码,如果想被导入不执行模块的可执行代码需在被导入的模块的可执行代码前加入判断,只有__name__ 的属性=__main__的时候才执行

包目录:
---p1.py
---p2.py
#-----------p1.py文件
gl_name = "p1"

class P1:
    def p1_func(self):
        print(f"我是{gl_name}")
        print(p2.gl_name)


def p1_f():
    print("hhhh")


if __name__ == "__main__":
    P1().p1_func()


#-----------p2.py文件
# 导入p1模块
import p1 as p

gl_name = "p2"


class P2:
    def p2_func(self):
        print(f"我是{gl_name}")


if __name__ == "__main__":
    # 调用p1模块的函数
    p.p1_f()
    # 调用p1模块的全局变量
    print(p.gl_name)
    # 调用p1模块的类并实例化
    test_p = p.P1()
    # 调用实例化方法
    test_p.p1_func()

 列表矩阵变化

 如果有个列表[1,2,3][4,5,6]现在想把这两个列表变成 [1,4][2,5][3,6]有什么办法?

# 方法1
a, b = [1, 2, 3], [4, 5, 6]
c = list(zip(a, b))
d = [list(i) for i in c]

# 方法2
c = [a, b]
s = []
for i in range(3):
    d = []
    for data in c:
        d.append(data[i])
    s.append(d)

 在接口自动化实际应用中经常需要使用zip和列表矩阵这种思路去组装测试数据。
zip 方法接受两个参数(都是可迭代对象),将 a,b对象的每个元素打包组成新的元祖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,我们需要在jupyter中创建一个名为"学习python"的,具体步骤如下: 1. 打开jupyter notebook,进入到你想要创建的目录下。 2. 在terminal中输入以下命令,创建一个名为"学习python"的文件夹并进入该文件夹: ``` mkdir 学习python cd 学习python ``` 3. 在terminal中输入以下命令,创建一个名为"day1"的模块并打开该模块: ``` touch day1.py jupyter notebook day1.py ``` 4. 在day1模块中编写模块A1的内容,并在每行代码的前面加上注释。例如: ```python # day1模块 def add_numbers(a, b): # 这个函数用来求两个数的和 return a + b def multiply_numbers(a, b): # 这个函数用来求两个数的积 return a * b ``` 5. 在day1模块中导入day2模块的Human类,并编写调用该类的代码。例如: ```python # day1模块 from day2 import Human def greet(name): # 这个函数用来向指定的人打招呼 person = Human(name) print("Hello, " + person.name + "!") ``` 6. 在terminal中输入以下命令,创建一个名为"day2"的模块并打开该模块: ``` touch day2.py jupyter notebook day2.py ``` 7. 在day2模块中编写模块A2的内容,并在每行代码的前面加上注释。例如: ```python # day2模块 class Human: # 这个类用来表示一个人,有名字和年龄属性 def __init__(self, name, age=0): self.name = name self.age = age def say_hello(self): # 这个方法用来向别人打招呼 print("Hello, my name is " + self.name + ".") ``` 8. 保存day1和day2模块,并退出jupyter notebook。 接下来,我们就可以在另一个文件中调用这些模块了。例如,我们可以在一个名为"test.py"的文件中编写以下代码: ```python # test.py from 学习python.day1 import add_numbers, multiply_numbers, greet # 调用day1模块的函数 sum = add_numbers(3, 4) print("The sum of 3 and 4 is " + str(sum) + ".") product = multiply_numbers(3, 4) print("The product of 3 and 4 is " + str(product) + ".") # 调用day2模块的类 person = Human("Alice", 25) person.say_hello() # 调用day1模块中调用day2模块的代码 greet("Bob") ``` 运行以上代码,输出结果应该为: ``` The sum of 3 and 4 is 7. The product of 3 and 4 is 12. Hello, my name is Alice. Hello, Bob! ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值