モジュール
モジュールの紹介
- 基本単位
- モジュール化:完全なプログラムを小さなモジュールに分割します
- モジュール性の利点:
1.開発と保守が容易
2.モジュールは再利用可能
- pythonのpyファイルはモジュールであり
、外部モジュールがモジュールに導入されています
同じモジュールを複数回導入できますが、モジュールは1回しか実行されません
モジュールの紹介
- 最初のタイプ:import module name(モジュール名はpythonファイル名です)
text
print('这是我的第一个模块')
テストファイル
import text
print(text)# <一个模块的名字和指向的路径>
- 2番目のタイプ:モジュール名をモジュールエイリアス
テキストとしてインポート
print(__name__)
テスト
import text as text_m
print(text_m)# <一个模块的名字和指向的路径>
# __name__:在每一个模块内部都有这个__name__我们可以通过这个获取模块的名字
# 如果这个模块直接运行,那么这个__name__默认的字符串__main__
- 3番目のタイプ:モジュール名からインポート変数、変数、変数...
テスト:
from text import Person,text1,text2
#print(text)
p1 = Person()
print(p1)
text1()
text2()
モジュール
a = 1
b = 2
# 在模块中定义函数
def text1():
print('text1')
def text2():
print('text2')
# 在模块中定义类
class Person:
def __init__(self):
self.name = '葫芦娃'
p = Person()
print(p.name)
- 4番目:モジュール名からインポート*
テスト
from text import *
text1()
text2()
モジュール
# 在模块中定义变量
a = 1
b = 2
# 在模块中定义函数
def text1():
print('text1')
def text2():
print('text2')
# 在模块中定义类
class Person:
def __init__(self):
self.name = '葫芦娃'
p = Person()
print(p.name)
試験結果
葫芦娃
text1
text2
- 5番目:モジュール名からエイリアスとして変数をインポート
def text1():
print('主模块中的text1')
from text import text1 as new_text1
text1()
new_text1()
# 在模块中定义变量
a = 1
b = 2
# 在模块中定义函数
def text1():
print('text1')
def text2():
print('text2')
# 在模块中定义类
class Person:
def __init__(self):
self.name = '葫芦娃'
p = Person()
print(p.name)
葫芦娃
主模块中的text1
text1
モジュールの使用法
テスト
# 访问模块中的变量的语法:
# 模块名.变量
import text
print(text.a,text.b)
# 访问模块中的函数的语法:
# 模块名.函数
text.text1()
text.text2()
# 访问模块中的类
# 语法:模块名.对象名
p = text.Person()
print(p.name)
モジュール
# 在模块中定义变量
a = 1
b = 2
# 在模块中定义函数
def text1():
print('text1')
def text2():
print('text2')
# 在模块中定义类
class Person:
def __init__(self):
self.name = '葫芦娃'
p = Person()
print(p.name)
試験結果
葫芦娃
1 2
text1
text2
葫芦娃
# 在模块中定义变量
a = 1
b = 2
c = 3# c是私有的,不希望去修改
# 在模块中定义函数
def text1():
print('text1')
def text2():
print('text2')
# 在模块中定义类
class Person:
def __init__(self):
self.name = '葫芦娃'
p = Person()
# 如果这个文件是主文件则执行下列代码
if __name__ == '__main__':
# 以下是测试代码
print(p.name)
text1()
text2()
葫芦娃
text1
text2
イテレーターとジェネレーター
イテレーター
要素にアクセスする方法として、トラバーサル位置のオブジェクトを思い出すことができます。イテレーターは、すべての要素にアクセスするまで、シーケンスの最初の要素からもアクセスされます。
lst = [1,2,3,4,5,6,7]
myiter = iter(lst)
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
1
2
3
4
5
6
7
lst = [1,2,3,4,5,6,7]
myiter = iter(lst)
for i in myiter:
# 迭代数据结构
print(i)
1
2
3
4
5
6
7
ビルダー
pythonでキーワードyieldを使用することは、ジェネレーター関数またはジェネレーターと呼ばれます
- ジェネレータと通常の機能の違い
返されるのは反復子関数であり、反復にのみ使用されます
def fn():
print(1)
yield 11
print('2')
yield 29
print('kjkjk')
yield 90
yield 78
print(type(fn))
f = fn()
print(type(f))
next(f)
print('返回:',next(f))
print('返回:',next(f))
print('返回:',next(f))
<class 'function'>
<class 'generator'>
1
2
返回: 29
kjkjk
返回: 90
返回: 78