Các biến module, tham số và biến tạm thời
Bắt đầu bằng cách phân tích namespace của chương trình doctor. Chương trình này bao gồm nhiều tên biến; cho
mục đích của ví dụ này, tập trung lên code cho biến replacements và hàm changePerson.
replacements = {“I”:”you”, “me”:”you”, “my”:”your”,
“we”:”you”, “us”:”you”, “mine”:”yours”}
def changePerson(sentence):
“””Replaces first person pronouns with second person
pronouns.”””
words = sentence.split( )
replyWords = []
for word in words:replyWords.append(replacements.get(word, word))
return ” “.join(replyWords)
Code này xuất hiện trong file doctor.py, nên tên module của nó là doctor. Các tên trong code này rơi vào 4 hạng
mục, phụ thuộc vào nơi nào chúng được giới thiệu:
1. Các biến module. Các tên replacements và changePerson được giới thiệu tại mức module. Mặc dù replacements đặt
tên một dictionary và changePerson đặt tên cho một hàm, cả hai chúng được xem như các biến. Bạn có thể thấy
các biến module của doctor module bằng cách nhập khẩu nó và nhập dir(doctor) tại một shell prompt. Khi các
biến module được giới thiệu trong một chương trình, chúng lập tức được cung cấp một giá trị.
2. Các tham số Tên sentence là một tham số của hàm changePerson. Một tên tham số có hành vi như một biến và
được giới thiệu trong một header hàm hay phương thức. Tham số không nhận một giá trị cho đến khi hàm được gọi.
3. Các biến tạm thời. Các tên words, replyWords, và word được giới thiệu trong body của hàm changePerson. Như
các biến module, các biến tạm thời nhận các giá trị của chúng ngay sau khi chúng được giới thiệu.
4. Các tên phương thức. Các tên split và join được giới thiệu hay định nghĩa trong dạng str. Như đề cập trước
kia, một tham chiếu phương thức luôn sử dụng một object, trong trường hợp này, một string, theo sau bởi
một dấu chấm và tên phương thức.
Chương trình đơn giản đầu tiên của bạn chỉ chứa các biến module. Việc sử dụng các định nghĩa hàm đem các tham
số và biến tạm thời vào hoạt động. Bạn bây giờ sẽ khám phá ý nghĩa của những khác biệt này.