1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng Thị giác máy tính trong cơ điện tử

137 2 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thị giác máy tính trong cơ điện tử
Trường học Thủy Lợi University
Chuyên ngành Cơ điện tử
Thể loại Bài giảng
Định dạng
Số trang 137
Dung lượng 7,27 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

1 Bài giảng THỊ GIÁC MÁY TÍNH TRONG CƠ ĐIỆN TỬ Bộ môn Kỹ thuật Cơ điện tử Nội dung môn học • Chương 1 Giới thiệu • Chương 2 Kiến thức cơ bản • Chương 3 Màu sắc, điểm ảnh và lọc • Chương 4 Tiền xử lý ả[.]

Trang 1

Bài giảng

THỊ GIÁC MÁY TÍNH

TRONG CƠ ĐIỆN TỬ

Bộ môn Kỹ thuật Cơ điện tử

Nội dung môn học

• Chương 1: Giới thiệu

• Chương 2: Kiến thức cơ bản

• Chương 3: Màu sắc, điểm ảnh và lọc

• Chương 4: Tiền xử lý ảnh

• Chương 5: Máy học trong xử lý ảnh

Trang 2

Đánh giá

• Bài tập, kiểm tra, chuyên cần 40%

– Bài tập được nộp cùng với python files hoặc

ipython notebook đã được chuyển sang pdf hoặc

html

– Nhận bài qua email:hieubv@tlu.edu.vn

– Bài kiểm tra được thực hiện vào tuần thứ 6 của

môn học

– Điểm chuyên cần (nghỉ 1 buổi trừ 1 điểm, nghỉ

không quá 20%)

• Điểm thi cuối kỳ chiếm 60% gồm:

– 03 câu lý thuyết và bài tập

Chương 1: Giới thiệu Thị giác máy tính

Trang 3

Lịch sử

Leonardo da Vinci,

16 th Century AD

This work is in the public domain

This work is in the public domain

Tế bào phức tạp

Phản ứng với hướng ánh

sáng và sự di chuyển

Tế bào siêu phưc tạp:

Phản ứng với sự di chuyển ở điểm

cuối

Trang 4

Block world

Larry Roberts, 1963

(a) Original picture (b) Differentiated picture (c) Feature points selected

This image is CC0 1.0 public domain This imageisCC0 1.0public domain

Input image Edge image 2 ½-D sketch 3-D model

sơ bộ cạnh, đường

ảo, nhóm, đường cong, ranh giới

2 ½-D Bản thảo

Biểu diễn cục

bộ và sự rời rạc theo chiều sâu

và hướng bề mặt

Mô hình 3-D

Mô hình 3 D được sắp xếp theo thứ bậc của thể tích và

bề mặt

Stages of Visual Representation, David Marr, 1970s

Trang 5

• Generalized Cylinder • Pictorial Structure

Fischler and Elschlager, 1973 Brooks & Binford, 1979

Normalized Cut (Shi & Malik, 1997)

Image is CC BY 3.0 Image is public domain Image is CC-BY SA 3.0

Trang 6

Thị giác là gì?

• Thị giác được lấy cảm hứng từ con người/động vật

được hoạt động phụ thuộc vào hai thành phần.

– Đầu tiên, tế bảo cảm nhận ghi lại càng nhiều chi tiết từ

một hình ảnh càng tốt Mắt sẽ thu nhận ánh sáng đi qua

mống mắt và chiếu đến võng mạc, nơi các tế bào chuyên

biệt sẽ truyền thông tin đến não thông qua các tế bào thần

kinh.

• Một máy ảnh chụp ảnh theo cách tương tự và truyền pixel đến

máy tính Ở phần này, máy ảnh tốt hơn con người vì chúng có

thể nhìn thấy tia hồng ngoại, nhìn xa hơn hoặc chính xác hơn.

– Thứ hai, thiết bị thông dịch phải xử lý thông tin và trích

xuất ý nghĩa từ nó Bộ não của con người giải quyết vấn

đề này theo nhiều bước ở các vùng khác nhau của não.

• Thị giác máy tính vẫn kém hiệu suất của con người trong lĩnh

vực này.

Thị giác máy tính là gì?

• Hai định nghĩa về thị giác máy tính

(computer vision):

• Thị giác máy tính có thể được định nghĩa là một

lĩnh vực khoa học trích xuất thông tin ra khỏi hình

ảnh kỹ thuật số Loại thông tin thu được từ hình

ảnh có thể thay đổi từ nhận dạng, đo không gian

để điều khiển hoặc các ứng dụng thực tế tăng

cường.

• Thị giác máy tính là để xây dựng các thuật toán có

thể hiểu nội dung của hình ảnh và sử dụng nó cho

các ứng dụng khác.

Trang 7

Lấy thông tin từ ảnh

– Chúng ta có thể chia thông tin thu được từ

hình ảnh trong thị giác máy tính thành hai

loại: phép đo và thông tin ngữ nghĩa

– Thị giác như một thiết bị đo lường

• Robot điều hướng ở một vị trí không xác định cần

có khả năng quét môi trường xung quanh để tính

toán

• Một cặp máy ảnh đưa ra thông tin về độ sâu như

mắt người thông qua phép đo tam giác

• Tăng số điểm quan sát có thể tạo ra bề mặt 3D

Lấy thông tin từ ảnh

• Thị giác được dùng như nguồn thông tin

– Một hình ảnh chứa một lượng thông tin ngữ

– Hình ảnh y tế cũng chứa rất nhiều thông tin ngữ

nghĩa Thị giác máy tính có thể hữu ích cho một

chẳng hạn như chẩn đoán dựa trên hình ảnh của

các tế bào da, để quyết định xem chúng có bị

ung thư hay không

Trang 8

Đối tượng của thị giác máy tính

• Là các dữ liệu hình ảnh.

– Dữ liệu hình ảnh có thể nhiều dạng, chẳng

hạn như chuỗi video, các cảnh từ camera,

hay dữ liệu đa chiều từ máy quét y học…

• Là lý thuyết đằng sau các hệ thống nhân

tạo có trích xuất các thông tin từ các hình

ảnh.

Đối tượng Thị giác máy tính

• Photo: viết tắt photograph Hình do máy

ảnh tạo ra

• Picture: hình hay bức họa Bức tranh, bức

ảnh, bứcvẽ, chân dung, hình chụp.

• Image: hình ảnh, hình tượng, tưởng tượng

trong suy nghĩ, ấn tượng Nói chung chỉ

cảm nhận về hình/ảnh.

Trang 9

Ứng dụng của thị giác máy tính

• Sinh học (Biological Sciences)

ứng dụng thành công lâu đời nhất của thị giác

máy tính là nhận dạng các ký tự và số Điều này

có thể được sử dụng để đọc mã zip hoặc biển số

xe

– Rô bốt: giúp rô bốt nhận dạng mọi vật xung

quanh từ đó đưa ra các quyết định

– Xe tự lái (self-driving cars): Lái xe tự động là một

trong những ứng dụng nóng nhất của thị giác

máy tính Các công ty như Tesla, Google hoặc

General Motors cạnh tranh để trở thành người

đầu tiên xây dựng xe hoàn toàn tự lái

– Phát hiện sản phẩm lỗi trong công nghiệp

Trang 10

Ứng dụng của thị giác máy tính

• Thực tế ảo VR đang sử dụng các kỹ thuật thị giác

máy tính tương tự như AR Thuật toán cần biết vị

trí của người dùng và vị trí của tất cả các đối

tượng xung quanh Khi người dùng di chuyển

xung quanh,mọi thứ cần được cập nhật một cách

thực tế và mượt mà

• Thanh toán tự động Amazon Go là một loại cửa

hàng mới không có thanh toán Với máy tínhtầm

nhìn, các thuật toán phát hiện chính xác sản phẩm

nào bạn sử dụng và chúng tính phí bạn khi bạn

bước ra khỏicửa hàng 2.

Ứng dụng của thị giác máy tính

– Hiệu ứng đặc biệt Chụp chuyển động và hình dạng là những kỹ

thuật mới được sử dụng trong các bộ phim như Avatar để tạo hoạt

ảnhký tự kỹ thuật số bằng cách ghi lại các chuyển động của một

diễn viên con người Để làm được điều đó, chúng tôi cóđể tìm vị trí

chính xác của các điểm đánh dấu trên khuôn mặt của diễn viên

trong không gian 3D, sau đó tạo lại chúng trênhình đại diện kỹ

thuật số

– Mô hình đô thị 3D Chụp ảnh bằng máy bay không người lái trên

thành phố có thể được sử dụng để kết xuất mô hình 3D củathành

phố Thị giác máy tính được sử dụng để kết hợp tất cả các bức

ảnh thành một mô hình 3D duy nhất.

– Nhận dạng cảnh Có thể nhận ra vị trí chụp ảnh Ví dụ, mộtbức ảnh

của một địa danh có thể được so sánh với hàng tỷ bức ảnh trên

google để tìm ra những điểm trùng khớp nhất chúng tôisau đó có

thể xác định kết quả phù hợp nhất và suy ra vị trí của bức ảnh.

– Nhận diện khuôn mặt Nhận diện khuôn mặt đã được sử dụng

nhiều năm trong máy ảnh để chụp ảnh đẹp hơnvà tập trung vào

các khuôn mặt Tính năng nhận diện nụ cười có thể cho phép máy

ảnh tự động chụp ảnh khi4 đối tượng đang mỉm cười.

Trang 11

Computer Vision Technology

Can Better Our Lives

Inside four images, clockwise, starting from top left:

Image is CC0 1.0 public domain

Image by Tucania is licensed under CC BY-SA 3.0 ; changes made

Image by Intuitive Surgical, Inc is licensed under CC BY-SA 3.0 ; changes made

Image by Oyundari Zorigtbaatar is licensed under CC BY-SA 4.0

Outside border images, clockwise, starting from top left:

Image by Pop Culture Geek is licensed under CC BY 2.0 ; changes made

Image by the US Government is in the public domain

Image by the US Government is in the public domain

Image by Glogger is licensed under CC BY-SA 3.0 ; changes made

Image by Sylenius is licensed under CC BY 3.0 ; changes made

Image by US Government is in the public domain

Trang 12

-Johnson et al., “Image Retrieval using Scene Graphs”, CVPR 2015

Figures copyright IEEE, 2015 Reproduced for educational purposes

Lecture 1

Trang 13

-Cách cài đặt và chạy một chương

– Code Python ở bất cứ các Text Editor (trình

soạn thảo văn bản) Text Document hay

Notepad,

• Có thể dùng Sublime Text, VS Code…

– Viết chương trình Python một cách hiệu quả

và nhanh chóng hơn cho người mới học nên

IDEs (môi trường phát triển tích hợp)

• PyCharm, Spyder, PyDev, Atom,… thì PyCharm có

lẽ là IDE được ưa chuộng cũng như phổ biến nhất

• Cài thư viện: Windows PowerShell (Admin)>

python -m pip install opencv-python

Trang 14

Cách cài đặt và chạy một chương

trình viết bằng Python

• Cách chạy một file

– Viết file dươi dạng py

– Folder >cmd hoặc powershell > python

tên_file.py

Cài đặt Jupyter Notebook

• Môi trường Anaconda; Miniconda

• Kiểm tra python đã được cài đặt

• Cài đặt Jupyter notebook

Trang 15

Jupyter Notebook

• Cài đặt xong Jupyter Notebook trong các bước ở trên

• Chạy Jupyter bằng câu lệnh trong Terminal hoặc Command Prompt:

– Sau đó, trình thông dịch lệnh sẽ hiển thị ra thông báo sau

dẫn http://localhost:8888/tree như hình dưới đây:

Jupyter Notebook

Trang 16

Jupyter Notebook

• 1 Tạo một notebook cơ bản

• Click vào New và chọn loại tài liệu như Python,

Text file, Folder

Jupyter Notebook

Tên mặc định là Untitled Click vào chữ “Untitled” phía trên cũng, bên phải

logo Jupyter để tự thay đổi tên theo ý của bạn.

Trang 17

Jupyter Notebook

• Ở Tab quản lý file của Jupyter, bạn sẽ thấy một file

mới có tên notebook01.ipynb với trạng thái

là Running vì notebook này đang được mở.

• Tắt một notebook bằng cách nhấn Shutdown.

Jupyter Notebook

– 1: Tiêu đề tài liệu,

– 2: Thanh menu bao gồm các menu như:

• File: các menu thao tác với file như tạo mới, lưu trữ,

save as

Trang 18

Jupyter Notebook

– Edit: các menu thao tác với nội dung file như copy, paste văn bản, cell,

tìm kiếm và thay thế một nội dung trong file, chèn hình ảnh

– View: menu điều chỉnh giao diện, hiển thị hoặc ẩn các thành phần giao

diện trong Jupyter Notebook.

– Insert, Cell: các hành động liên quan đến Cell là thành phần cơ bản của

một tài liệu.

– Kernel: các thao tác với kernel hiện hành như thay đổi nếu muốn sử

dụng ngôn ngữ khác, restart, shutdown

• 3: Thanh menu nhanh (shortcut menu) bao gồm các thao tác nhanh

mà bạn thường làm với một tài liệu, có một số nút trên đó chúng ta

hay dùng nhất như:

– Save file, Copy, paste; Thay đổi thứ tự các cell trong tài liệu; Chạy code

trong tài liệu; Lựa chọn loại văn bản trong cell:

– Code: Cell này chứa mã Python và có thể thực hiện được.

– Markdown: Cell này chứa văn bản diễn giải.

• 4: Nội dung tài liệu chứa các cell có nội dung là code hoặc

markdown, đây là vùng chúng ta sẽ làm việc chính.

Câu hỏi

• Câu 1 Thị giác, thị giác máy tính là gì?

• Câu 2 Đối tượng của thị giác máy tính?

• Câu 3 Ứng dụng của thị giác máy tính?

• Câu 4 Lấy thông tin từ ảnh gồm những

loại nào? Cho ví dụ?

Trang 19

Tài liệu tham khảo

Computer Vision CS231n - Stanford University

• Hubel, David H., and Torsten N Wiesel "Receptive fields, binocular interaction and

functional architecture in the cat's visual cortex." The Journal of physiology 160.1 (1962):

106 [PDF]

• Roberts, Lawrence Gilman "Machine Perception of Three-dimensional Solids." Diss

Massachusetts Institute of Technology, 1963 [PDF]

• Marr, David "Vision.” The MIT Press, 1982 [PDF]

• Brooks, Rodney A., and Creiner, Russell and Binford, Thomas O "The ACRONYM

model-based vision system " In Proceedings of the 6th International Joint Conference on Artificial

Intelligence (1979): 105-113 [PDF]

• Fischler, Martin A., and Robert A Elschlager "The representation and matching of pictorial

structures." IEEE Transactions on Computers 22.1 (1973): 67-92 [PDF]

• Lowe, David G., "Three-dimensional object recognition from single two-dimensional

images," Artificial Intelligence, 31, 3 (1987), pp 355-395 [PDF]

• Shi, Jianbo, and Jitendra Malik "Normalized cuts and image segmentation." Pattern

Analysis and Machine Intelligence, IEEE Transactions on 22.8 (2000): 888-905 [PDF]

• Viola, Paul, and Michael Jones "Rapid object detection using a boosted cascade of simple

features." Computer Vision and Pattern Recognition, 2001 CVPR 2001 Proceedings of

the 2001 IEEE Computer Society Conference on Vol 1 IEEE, 2001

Trang 20

Biến trong python

• Biến trong python

– Biến Python là một vị trí bộ nhớ dành riêng để

lưu trữ các giá trị Nói cách khác, một biến

trong chương trình python cung cấp dữ liệu

cho máy tính để xử lý.

– Mọi giá trị trong Python đều có một kiểu dữ

liệu Các kiểu dữ liệu khác nhau trong Python

là Numbers, List, Tuple, Strings, Dictionary,

v.v Các biến có thể được khai báo bằng bất

kỳ tên nào hoặc thậm chí là các bảng chữ cái

như a, aa, abc

Trang 21

Số và Boolean

• Number

– Số

• Số nguyên: Trong Python, giá trị của một số

nguyên không bị giới hạn bởi số lượng bit và có

thể mở rộng đến giới hạn của bộ nhớ khả dụngSố

nổi:

• Trong Python, số có dấu phảy động được sử dụng

để biểu diễn số thực và được viết bằng dấu (.)

chia phần nguyên và phần phân số

Số và Boolean

• Boolean

– Booleans đại điện cho một trong hai giá trị

đúng hoặc sai.

Trang 22

Chuỗi

• Chuỗi

– Chuỗi là Mảng (Array) Giống như nhiều ngôn

ngữ lập trình phổ biến khác, chuỗi trong

Python là các mảng byte đại diện cho các ký

tự unicode

Thập phân, phân số, Mô-đun

toán học và thống kê

• Mô-đun thập phân (decimal module)

• Mô-đun thập phân cung cấp hỗ trợ cho số học dấu

phẩy động thập phân được làm tròn chính xác

nhanh chóng

– Mô-đun phân số (fraction module)

• Một thực thể phân số có thể được xây dựng từ

một cặp số nguyên, từ một số hữu tỉ khác hoặc từ

một chuỗi Các thực thể của phân số có thể được

chia nhỏ và được coi là bất biến

Trang 23

Thập phân, phân số, Mô-đun

toán học và thống kê

– Mô-đun toán học

• Mô-đun toán học Python là một tính năng quan

trọng được thiết kế để xử lý các phép toán Nó

được đóng gói với bản phát hành Python tiêu

chuẩn và đã ở đó ngay từ đầuStatistics Module

• Mô-đun thống kê cung cấp các chức năng để

thống kê toán học của dữ liệu số Các hàm thống

kê phổ biến sau đây được định nghĩa trong

mô-đun này

Thập phân, phân số, Mô-đun

toán học và thống kê

• Mô-đun toán học

Trang 24

– Toán tử số học - Arithmetic Operators.

– Toán tử quan hệ - Comparison (Relational) Operators

– Toán tử gán - Assignment Operators.

– Toán tử logic - Logical Operators.

– Toán tử Biwter - Bitwise Operators.

– Toán tử khai thác - Membership Operators.

– Toán tử xác thực - Indentity Operators.

Trang 25

Toán tử gán và toán tử logic

– Toán tử gán là toán tử dùng đế gán giá trị của

một đối tượng cho một đối tượng khác.

– Toán tự logic những toán tử này được áp

dụng cho kiểu luận lý (bool) Kết quả của toán

tử logic trả về true (1) hoặc false (0)

Trang 26

Danh sách và tuple

• Danh sách:

– Danh sách là một kiểu dữ liệu linh hoạt nhất

có sẵn trong Python, có thể được viết dưới

dạng danh sách các giá trị (mục) được phân

tách bằng dấu phẩy giữa các dấu ngoặc

vuông Điều quan trọng về danh sách là các

mục trong danh sách không cần cùng loại.Ví

dụ:

– my_list = [1, 2, 3]

Danh sách và tuple

• Tuple:

– Tuple trong Python là một kiểu dữ liệu dùng

để lưu trữ các đối tượng không thay đổi về

sau (giống như hằng số).

– Còn lại thì cách lưu trữ của nó cũng khá giống

như kiểu dữ liệu danh sách.

– my_tuple = (1, 2, 3)

Trang 27

Danh sách và tuple

Danh sách và tuple

Trang 28

Mảng và ma trận

– Mảng: Mảng là một cấu trúc dữ liệu để lưu trữ

dữ liệu đồng nhất Điều đó có nghĩa là tất cả

các phần tử là cùng một loại.

• Ví dụ: arr = np.array([[1,2],[3,4]])

• Ma trận: Ma trận là một mảng dữ liệu hai chiều,

trong đó dữ liệu được sắp xếp dưới dạng hàng và

cột Các mục hàng ngang trong ma trận được gọi

Trang 29

Câu lệnh điều kiện

– Câu lệnh If: Sử dụng câu lệnh if để thực thi

một khối mã Python, nếu điều kiện là đúng.

– Mọi giá trị khác 0 hoặc vùng chứa rỗng được

coi là TRUE, trong khi Giá trị 0, Không có và

vùng chứa rỗng được coi là FALSE Ví dụ :

Trang 31

Câu lệnh điều kiện

• Toán tử so sánh

Vòng lặp

– Câu lệnh for in Loop: Vòng lặp for trong

Python có thể lặp qua một chuỗi các phần tử.

Cấu trúc của vòng lặp for trong Python khác

với cấu trúc trong C ++ hoặc Java.

• Ví dụ:

• # Prints all letters except 'e' and 's’

• for letter in 'geeksforgeeks’:

if letter == 'e' or letter == 's’:

continue else:

print('Current Letter :', letter)

Trang 32

Vòng lặp

• Vòng lặp While: Một vòng lặp while trong

python lặp lại cho đến khi điều kiện của nó

trở thành Sai Nói cách khác, nó thực thi

các câu lệnh trong chính nó trong khi điều

Trang 33

Vòng lặp

– Break trong vòng lặp: Nếu câu lệnh break nằm trong một

vòng lặp lồng nhau (vòng lặp bên trong một vòng lặp

khác), câu lệnh break sẽ kết thúc vòng lặp trong cùng.

– Continue trong vòng lặp : Câu lệnh continue được sử

dụng để bỏ qua phần còn lại của đoạn mã bên trong

vòng lặp chỉ cho lần lặp hiện tại Vòng lặp không kết thúc

nhưng tiếp tục với lần lặp tiếp theo.Thí dụ :

for val in "string":

if val == "i":

break print(val)

for val in "string":

if val == "i":

continue print(val)

2 Vòng lặp

Trang 34

Iterators

• Iterator đơn giản là một đối tượng có thể được lặp

lại Nó cho phép các lập trình viên truy cập hoặc

duyệt qua tất cả các phần tử của bộ sưu tập mà

không cần hiểu sâu hơn về cấu trúc của nó

• Trình vòng lặp Python thực hiện giao thức trình

vòng lặp bao gồm hai phương thức đặc biệt iter

() và next () Phương thức iter () trả

về một đối tượng trình lặp trong đó phương thức

next () trả về phần tử tiếp theo từ chuỗi

Iterators

• Ví dụ: x=['Hey','there','Python','programmers’]

• obj = iter(x) #using iter function for x

• next(obj) #Iteration 1 # Output: 'Hey'

• next(obj) #Iteration 2 # Output: 'there'

Trang 35

Khai báo hàm và đối số

– Hàm là một khối mã có tổ chức, có thể sử

dụng lại được dùng để thực hiện một hành

động nào đó.

– Hàm cung cấp mô-đun tốt hơn cho ứng dụng

của bạn và mức độ tái sử dụng mã cao.

Khai báo hàm và đối số

– Như bạn đã biết, Python cung cấp cho bạn

nhiều hàm tích hợp sẵn như print (), v.v.

nhưng bạn cũng có thể tạo các hàm của riêng

mình Các hàm này được gọi là các hàm do

Trang 36

Khai báo hàm và đối số

• Các tham số và đối số từ vựng không giới hạn ở

python nhưng chúng giống nhau trên các ngôn

ngữ lập trình khác nhau

• Đối số là các giá trị được chuyển vào hàm (hoặc

phương thức) khi hàm gọiTham số là các biến (số

nhận dạng) được chỉ định trong định nghĩa hàm

(tiêu đề của)Thí dụ :

Khai báo hàm và đối số

Function Declaration Function Arguments

Trang 37

Khai báo hàm và đối số

Đối số vị trí Đối số từ khóa

Khai báo hàm và đối số

Hỗn hợp đối số từ khóa và đối số vị trí Giá trị tham số mặc định

Trang 38

Biến toàn cục và biến cục bộ

• Toàn cục biến trong Python được định nghĩa bên

ngoài một hàm Nó sẽ hoạt động trên toàn bộ chức

năng nếu không có biến được đặt giống nhau tên

• Các biến được định nghĩa trong một chức năng là

các cục biến.Bất kỳ bên trong mã nào trong đó

chức năng đều có thể truy cập (đọc và thay đổi)

biến này

• Bất kỳ bên ngoài mã nào nó cũng không được Nó

là địa chỉ, vì vậy nó không thể nhìn thấy từ bên

ngoài

2 Global and Local Variables

• Ví dụ

Trang 39

Biến toàn cục và biến cục bộ

– Không gian tên Python có thể được chia

thành bốn loại (tiếp)

• Local Namespace : Một chức năng, vòng lặp for,

khối thử ngoại trừ là một số ví dụ về không gian

tên cục bộ Không gian tên cục bộ bị xóa khi hàm

hoặc khối mã kết thúc quá trình thực thi

• Enclosed Namespace : Khi một hàm được xác

định bên trong một hàm, nó sẽ tạo ra một không

gian tên kèm theo Vòng đời của nó cũng giống

như không gian tên cục bộ

Biến toàn cục và biến cục bộ

• Python namespaces can be divided into four types

• Không gian tên toàn cầu: nó thuộc về tập lệnh

python hoặc mô-đun hiện tại Không gian tên

chung cho một mô-đun được tạo khi định nghĩa

đun được đọc Nói chung, không gian tên

mô-đun cũng tồn tại cho đến khi trình thông dịch thoát

ra.Không gian tên dựng sẵn:

• Không gian tên dựng sẵn được tạo khi trình thông

dịch Python khởi động và nó không bao giờ bị xóa

• Phạm vi xác định thứ bậc trong đó chúng tôi tìm

kiếm một biến

Trang 40

Biến toàn cục và biến cục bộ

Namespaces Error Case

Biến toàn cục và biến cục bộ

Enclosing Scope Explanation

Ngày đăng: 02/10/2023, 13:42

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm