オブジェクト指向モジュール

モジュール

モジュールの紹介

  • 基本単位
    • モジュール化:完全なプログラムを小さなモジュールに分割します
    • モジュール性の利点:

      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

おすすめ

転載: blog.csdn.net/qq_45671732/article/details/108909354