Hướng dẫn what is reference variable in python class? - biến tham chiếu trong lớp python là gì?

Biến và các tài liệu tham khảo khác

Một chương trình Python truy cập các giá trị dữ liệu thông qua các tài liệu tham khảo. Tham chiếu là một tên đề cập đến vị trí cụ thể trong bộ nhớ của một giá trị [đối tượng]. Tài liệu tham khảo có dạng biến, thuộc tính và mục. Trong Python, một biến hoặc tham chiếu khác không có loại nội tại. Tuy nhiên, đối tượng mà một tham chiếu được ràng buộc tại một thời điểm nhất định có một loại, tuy nhiên. Bất kỳ tham chiếu nhất định có thể bị ràng buộc với các đối tượng thuộc các loại khác nhau trong quá trình thực hiện một chương trình.reference is a name that refers to the specific location in memory of a value [object]. References take the form of variables, attributes, and items. In Python, a variable or other reference has no intrinsic type. The object to which a reference is bound at a given time does have a type, however. Any given reference may be bound to objects of different types during the execution of a program.

Biến

Trong Python, không có tuyên bố. Sự tồn tại của một biến phụ thuộc vào một câu lệnh binds biến, hoặc, nói cách khác, đặt một tên để giữ một tham chiếu đến một số đối tượng. Bạn cũng có thể unbind một biến bằng cách đặt lại tên để nó không còn giữ một tham chiếu nữa. Các câu lệnh gán là cách phổ biến nhất để liên kết các biến và các tài liệu tham khảo khác. Tuyên bố del không liên kết tài liệu tham khảo.

Liên kết một tài liệu tham khảo đã bị ràng buộc còn được gọi là rebinding nó. Bất cứ khi nào ràng buộc được đề cập trong cuốn sách này, việc phục hồi được bao gồm hoàn toàn ngoại trừ nơi nó được loại trừ rõ ràng. Rebinding hoặc không liên kết một tham chiếu không có tác dụng đối với đối tượng mà tham chiếu bị ràng buộc, ngoại trừ một đối tượng biến mất khi không có gì đề cập đến nó. Việc dọn dẹp tự động các đối tượng mà không có tài liệu tham khảo nào được gọi là garbage collection.

Bạn có thể đặt tên cho một biến với bất kỳ định danh nào ngoại trừ 29 được bảo lưu dưới dạng từ khóa Python [xem Phần 4.1.2.2 trước đó trong chương này]. Một biến có thể là toàn cầu hoặc địa phương. GlobalVarable là một thuộc tính của một đối tượng mô -đun [Chương 7 bao gồm các mô -đun]. Một địa phương có thể sống trong một không gian tên địa phương chức năng [xem phần 4.10 sau đó trong chương này].global variable is an attribute of a module object [Chapter 7 covers modules]. A local variable lives in a function’s local namespace [see Section 4.10 later in this chapter].

Thuộc tính và mục đối tượng

Sự khác biệt giữa các thuộc tính và mục của một đối tượng nằm trong cú pháp bạn sử dụng để truy cập chúng. Một

a = b = c = 0
0 của một đối tượng được biểu thị bằng một tham chiếu đến đối tượng, theo sau là một khoảng thời gian [.], Tiếp theo là một định danh gọi là ____10
a = b = c = 0
2 [tức là, ____ 13 .____ 14 đề cập đến thuộc tính của đối tượng
a = b = c = 0
3 được đặt tên là
a = b = c = 0
4].

Một

a = b = c = 0
7 của một đối tượng được biểu thị bằng một tham chiếu đến đối tượng, theo sau là một biểu thức trong ngoặc [
a = b = c = 0
8]. Biểu thức trong ngoặc được gọi là
a = b = c = 0
9 hoặc
a, b, c = x
0 đối với mục và đối tượng được gọi là
a, b, c = x
1 của mục [tức là,
a = b = c = 0
3
a, b, c = x
3
a = b = c = 0
4
a, b, c = x
5 đề cập đến mục tại khóa hoặc chỉ mục
a = b = c = 0
4 trong đối tượng container
a = b = c = 0
3].

Các thuộc tính có thể gọi còn được gọi là

a, b, c = x
8. Python không có sự khác biệt mạnh mẽ giữa các thuộc tính có thể gọi và không thể gọi được, như các ngôn ngữ khác làm. Các quy tắc chung về các thuộc tính cũng áp dụng cho các thuộc tính có thể gọi [Phương thức].

Truy cập các tài liệu tham khảo không tồn tại

Một lỗi lập trình phổ biến là cố gắng truy cập một tham chiếu không tồn tại. Ví dụ: một biến có thể không bị ràng buộc hoặc tên thuộc tính hoặc chỉ mục mục có thể không hợp lệ cho đối tượng mà bạn áp dụng. Trình biên dịch Python, khi phân tích và biên dịch mã nguồn, chỉ chẩn đoán lỗi cú pháp. Biên dịch không chẩn đoán các lỗi ngữ nghĩa như cố gắng truy cập thuộc tính, mục hoặc biến không liên kết. Python chỉ chẩn đoán các lỗi ngữ nghĩa khi mã sai lầm thực thi, tức là, khi chạy. Khi một hoạt động là một lỗi ngữ nghĩa Python, việc cố gắng làm tăng một ngoại lệ [xem Chương 6]. Truy cập một biến không tồn tại, thuộc tính hoặc mục, giống như bất kỳ lỗi ngữ nghĩa nào khác, làm tăng một ngoại lệ.

Báo cáo chuyển nhượng

Báo cáo chuyển nhượng có thể là đơn giản hoặc tăng cường. Gán đơn giản cho một biến [ví dụ:

a = b = c = 0
2
a, b = b, a
0
a, b = b, a
1] là cách bạn tạo một biến mới hoặc viết lại một biến hiện có thành một giá trị mới. Gán đơn giản cho một thuộc tính đối tượng [ví dụ: ____ 32 .________ 33
a, b = b, a
0
a, b = b, a
1] là một yêu cầu đối tượng
a, b = b, a
2 để tạo hoặc tái lập thuộc tính
a, b = b, a
3. Bài tập đơn giản cho một mục trong một container [ví dụ:
a, b = b, a
2
a, b, c = x
3
a, b, c = x
0 binds1
a, b = b, a
1] là một yêu cầu để container
a, b = b, a
2 để tạo hoặc lật lại mục với INDEX
a, b, c = x
0.

Bài tập tăng cường [ví dụ:

a = b = c = 0
2 binds6
a, b = b, a
1] không thể, mỗi se, tạo ra các tài liệu tham khảo mới. Bài tập tăng cường có thể làm nổi bật một biến, yêu cầu một đối tượng để phản bác một trong các thuộc tính hoặc mục hiện có của nó hoặc yêu cầu đối tượng đích để tự sửa đổi [tất nhiên, một đối tượng có thể tạo các tài liệu tham khảo mới tùy ý trong khi trả lời các yêu cầu]. Khi bạn đưa ra yêu cầu cho một đối tượng, tùy thuộc vào đối tượng để quyết định có nên tôn trọng yêu cầu hay nêu ra một ngoại lệ.

Plain assignment

A plain assignment statement in the simplest form has the syntax:

                     target = expression

The target is also known as the left-hand side, and the expression as the right-hand side. When the assignment statement executes, Python evaluates the right-hand side expression, then binds the expression’s value to the left-hand side target. The binding does not depend on the type of the value. In particular, Python draws no strong distinction between callable and non-callable objects, as some other languages do, so you can bind functions, methods, types, and other callables to variables.

Details of the binding do depend on the kind of target, however. The target in an assignment may be an identifier, an attribute reference, an indexing, or a slicing:

  • An identifier is a variable’s name: assignment to an identifier binds the variable with this name.

  • An attribute reference has the syntax

    a, b = b, a
    2.
    a = b = c = 0
    2.
    a, b = b, a
    2 is an expression denoting an object, and
    a = b = c = 0
    2 is an identifier, called an attribute name of the object. Assignment to an attribute reference asks object
    a, b = b, a
    2 to bind its attribute named
    a = b = c = 0
    2.

  • An indexing has the syntax

    a, b = b, a
    2
    a, b, c = x
    3 unbind6
    a, b, c = x
    5.
    a, b = b, a
    2 and unbind6 are expressions denoting any objects. Assignment to an indexing asks container
    a, b = b, a
    2 to bind its item selected by the value of unbind6, also known as the index or key of the item.

  • A slicing has the syntax

    a, b = b, a
    2
    a, b, c = x
    3 del4:del5
    a, b, c = x
    5 or
    a, b = b, a
    2
    a, b, c = x
    3 del4:del5:rebinding1
    a, b, c = x
    5.
    a, b = b, a
    2, del4, del5, and rebinding1 are expressions denoting any objects. del4, del5, and rebinding1 are all optional [i.e.,
    a, b = b, a
    2
    a, b, c = x
    3:del5 garbage3 is also a syntactically correct slicing, equivalent to
    a, b = b, a
    2 garbage5:del5 garbage7]. Assignment to a slicing asks container
    a, b = b, a
    2 to bind or unbind some of its items.

We’ll come back to indexing and slicing targets later in this chapter when we discuss operations on lists and dictionaries.

When the target of the assignment is an identifier, the assignment statement specifies the binding of a variable. This is never disallowed: when you request it, it takes place. In all other cases, the assignment statement specifies a request to an object to bind one or more of its attributes or items. An object may refuse to create or rebind some [or all] attributes or items, raising an exception if you attempt a disallowed creation or rebinding.

There can be multiple targets and equals signs [

a, b = b, a
0] in a plain assignment. For example:

a = b = c = 0

binds variables collection0, collection1, and collection2 to the value collection3. Each time the statement executes, the right-hand side expression is evaluated once. Each target gets bound to the single object returned by the expression, just as if several simple assignments executed one after the other.

The target in a plain assignment can list two or more references separated by commas, optionally enclosed in parentheses or brackets. For example:

a, b, c = x

This requires

a = b = c = 0
3 to be a sequence with three items, and binds collection0 to the first item, collection1 to the second, and collection2 to the third. This kind of assignment is called an unpacking assignment, and, in general, the right-hand side expression must be a sequence with exactly as many items as there are references in the target; otherwise, an exception is raised. Each reference in the target is bound to the corresponding item in the sequence. An unpacking assignment can also swap references:

a, b = b, a

This rebinds collection0 to refer to what collection1 was bound to, and vice versa.

Augmented assignment

An augmented assignment differs from a plain assignment in that, instead of an equals sign [

a, b = b, a
0] between the target and the expression, it uses an
a = b = c = 0
01
a = b = c = 0
02: a binary operator followed by
a, b = b, a
0. The augmented operators are binds6,
a = b = c = 0
05,
a = b = c = 0
06,
a = b = c = 0
07,
a = b = c = 0
08,
a = b = c = 0
09,
a = b = c = 0
10,
a = b = c = 0
11,
a = b = c = 0
12,
a = b = c = 0
13,
a = b = c = 0
14, and
a = b = c = 0
15. An augmented assignment can have only one target on the left-hand side; that is, augmented assignment doesn’t support multiple targets.

In an augmented assignment, just as in a plain one, Python first evaluates the right-hand side expression. Then, if the left-hand side refers to an object that has a special method for the appropriate in-place version of the operator, Python calls the method with the right-hand side value as its argument. It is up to the method to modify the left-hand side object appropriately and return the modified object [Chapter 5 covers special methods]. If the left-hand side object has no appropriate in-place special method, Python applies the corresponding binary operator to the left-hand side and right-hand side objects, then rebinds the target reference to the operator’s result. For example,

a = b = c = 0
3 binds6
a = b = c = 0
4 is like
a = b = c = 0
3
a, b = b, a
0
a = b = c = 0
3
a = b = c = 0
22
a = b = c = 0
4
a = b = c = 0
24 when
a = b = c = 0
3 has special method
a = b = c = 0
26. Otherwise
a = b = c = 0
3 binds6
a = b = c = 0
4 is like
a = b = c = 0
3
a, b = b, a
0
a = b = c = 0
3
a = b = c = 0
33
a = b = c = 0
4.

Bài tập tăng cường không bao giờ tạo ra tham chiếu mục tiêu của nó: Mục tiêu phải bị ràng buộc khi thực hiện gán tăng cường. Bài tập tăng cường có thể gắn lại tham chiếu mục tiêu vào một đối tượng mới hoặc sửa đổi cùng một đối tượng mà tham chiếu đích đã bị ràng buộc. Ngược lại, gán đơn giản có thể tạo hoặc khôi phục tham chiếu mục tiêu bên trái, nhưng nó không bao giờ sửa đổi đối tượng, nếu có, tham chiếu mục tiêu trước đó bị ràng buộc. Sự khác biệt giữa các đối tượng và tham chiếu đến các đối tượng là rất quan trọng ở đây. Ví dụ:

a = b = c = 0
3
a, b = b, a
0
a = b = c = 0
3
a = b = c = 0
33
a = b = c = 0
4 Không sửa đổi đối tượng mà tên
a = b = c = 0
3 ban đầu bị ràng buộc. Thay vào đó, nó làm nổi bật tên
a = b = c = 0
3 để chỉ một đối tượng mới.
a = b = c = 0
3 binds6
a = b = c = 0
4, ngược lại, sửa đổi đối tượng mà tên
a = b = c = 0
3 bị ràng buộc khi đối tượng đó có phương pháp đặc biệt
a = b = c = 0
26; Mặt khác,
a = b = c = 0
3 binds6
a = b = c = 0
4 Rebind tên
a = b = c = 0
3, giống như
a = b = c = 0
3
a, b = b, a
0
a = b = c = 0
3
a = b = c = 0
33
a = b = c = 0
4.

DEL tuyên bố

Mặc dù tên của nó, một tuyên bố del không xóa các đối tượng: thay vào đó, nó không liên kết các tài liệu tham khảo. Xóa đối tượng có thể theo hậu quả, bằng cách thu gom rác, khi không còn tham chiếu đến một đối tượng.

Một câu lệnh del bao gồm từ khóa del, theo sau là một hoặc nhiều tham chiếu mục tiêu được phân tách bằng dấu phẩy [,]. Mỗi mục tiêu có thể là một biến, tham chiếu thuộc tính, lập chỉ mục hoặc cắt, giống như đối với các câu lệnh gán và phải được ràng buộc tại thời điểm del thực thi. Khi mục tiêu del là một định danh, câu lệnh del chỉ định sự kết hợp của biến. Miễn là định danh bị ràng buộc, không liên kết, nó không bao giờ được phép: khi được yêu cầu, nó diễn ra.

Trong tất cả các trường hợp khác, câu lệnh del chỉ định yêu cầu đến một đối tượng để giải phóng một hoặc nhiều thuộc tính hoặc mục của nó. Một đối tượng có thể từ chối giải phóng một số [hoặc tất cả] các thuộc tính hoặc vật phẩm, nêu ra một ngoại lệ nếu cố gắng không được phép không liên kết [xem thêm __delattr__ trong Chương 5]. Không liên kết với một sự cắt lát thường có tác dụng tương tự như gán một chuỗi trống cho lát cắt đó, nhưng tùy thuộc vào đối tượng container để thực hiện sự tương đương này.

Nhận Python một cách ngắn gọn với nền tảng học tập O hèReilly.learning platform.

Các thành viên của O hèReilly trải nghiệm đào tạo trực tuyến trực tiếp, cộng với sách, video và nội dung kỹ thuật số từ gần 200 nhà xuất bản.nearly 200 publishers.

Biến tham chiếu trong Python là gì?

Biến Python là một tên biểu tượng là một tham chiếu hoặc con trỏ đến một đối tượng. Khi một đối tượng được gán cho một biến, bạn có thể tham khảo đối tượng bằng tên đó. Nhưng chính dữ liệu vẫn còn trong đối tượng.a symbolic name that is a reference or pointer to an object. Once an object is assigned to a variable, you can refer to the object by that name. But the data itself is still contained within the object.

Biến tham chiếu với ví dụ là gì?

Biến tham chiếu là một tên thay thế của biến đã có.Nó không thể được thay đổi để giới thiệu một biến khác và nên được khởi tạo tại thời điểm khai báo và không thể là null.Toán tử '&' được sử dụng để khai báo biến tham chiếu.Sau đây là cú pháp của biến tham chiếu.an alternate name of already existing variable. It cannot be changed to refer another variable and should be initialized at the time of declaration and cannot be NULL. The operator '&' is used to declare reference variable. The following is the syntax of reference variable.

Làm thế nào để bạn sử dụng các biến tham chiếu trong Python?

Truyền qua tham chiếu có nghĩa là bạn phải chuyển hàm [tham chiếu] đến một biến đề cập rằng biến đã tồn tại trong bộ nhớ.Ở đây, biến [nhóm] được truyền trực tiếp vào hàm.Biến hoạt động như một gói đi kèm với nội dung của nó [các đối tượng].pass the function[reference] to a variable which refers that the variable already exists in memory. Here, the variable[ the bucket] is passed into the function directly. The variable acts as a Package that comes with its contents[the objects].

Việc sử dụng biến tham chiếu là gì?

Một biến tham chiếu cung cấp một tên mới cho biến hiện có.Nó được tham chiếu ngầm một cách ngầm và không cần một toán tử tham chiếu [*] để truy xuất giá trị được tham chiếu.Trong khi đó, để lấy lại giá trị được chỉ ra bởi một con trỏ, chúng ta cần toán tử tham chiếu [*] được gọi là tham chiếu rõ ràng.provides a new name to the existing variable. It is de-referenced implicitly and does not need a de-referencing operator[*] to retrieve the value referenced. Whereas, to retrieve the value pointed to by a pointer we need de-referencing operator[*] which is known as explicit de-referencing.

Bài Viết Liên Quan

Chủ Đề