Hàm Python - Property []
Hàm
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
4 được sử dụng để xác định các thuộc tính trong lớp Python.Phương thức
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
4 trong Python cung cấp một giao diện cho các thuộc tính thể hiện. Nó gói gọn các thuộc tính thể hiện và cung cấp một thuộc tính, giống như Java và C#.Phương thức
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
4 lấy các phương thức GET, SET và XÓA làm đối số và trả về một đối tượng của lớp >>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
7.Nên sử dụng bộ trang trí thuộc tính thay vì phương pháp
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
4.property[fget, fset, fdel, doc]
Parameters:
- FGET: [Tùy chọn] Hàm để nhận giá trị thuộc tính. Giá trị mặc định là không có.
- FSET: [Tùy chọn] Hàm để đặt giá trị thuộc tính. Giá trị mặc định là không có.
- FDEL: [Tùy chọn] Hàm để xóa giá trị thuộc tính. Giá trị mặc định là không có.
- DOC: [Tùy chọn] Một chuỗi chứa tài liệu. Giá trị mặc định là không có.
Giá trị trở lại:
Trả về thuộc tính thuộc tính từ getter, setter và deleter đã cho.
Ví dụ sau đây cho thấy cách tạo một thuộc tính trong Python bằng hàm
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
4.class person:
def __init__[self]:
self.__name=''
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
name=property[getname, setname]
Trong ví dụ trên,
class person:
def __init__[self, name]:
self.__name=name
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
def delname[self]:
print['delname[] called']
del self.__name
# Set property to use get_name, set_name
# and del_name methods
name=property[getname, setname, delname]
0 trả về đối tượng thuộc tính và gán nó cho class person:
def __init__[self, name]:
self.__name=name
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
def delname[self]:
print['delname[] called']
del self.__name
# Set property to use get_name, set_name
# and del_name methods
name=property[getname, setname, delname]
1. Do đó, thuộc tính class person:
def __init__[self, name]:
self.__name=name
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
def delname[self]:
print['delname[] called']
del self.__name
# Set property to use get_name, set_name
# and del_name methods
name=property[getname, setname, delname]
1 ẩn thuộc tính cá nhân riêng class person:
def __init__[self, name]:
self.__name=name
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
def delname[self]:
print['delname[] called']
del self.__name
# Set property to use get_name, set_name
# and del_name methods
name=property[getname, setname, delname]
3. Thuộc tính class person:
def __init__[self, name]:
self.__name=name
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
def delname[self]:
print['delname[] called']
del self.__name
# Set property to use get_name, set_name
# and del_name methods
name=property[getname, setname, delname]
1 được truy cập trực tiếp, nhưng bên trong nó sẽ gọi phương thức class person:
def __init__[self, name]:
self.__name=name
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
def delname[self]:
print['delname[] called']
del self.__name
# Set property to use get_name, set_name
# and del_name methods
name=property[getname, setname, delname]
5 hoặc class person:
def __init__[self, name]:
self.__name=name
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
def delname[self]:
print['delname[] called']
del self.__name
# Set property to use get_name, set_name
# and del_name methods
name=property[getname, setname, delname]
6, như được hiển thị bên dưới.>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
Như bạn có thể thấy ở trên, phương thức
class person:
def __init__[self, name]:
self.__name=name
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
def delname[self]:
print['delname[] called']
del self.__name
# Set property to use get_name, set_name
# and del_name methods
name=property[getname, setname, delname]
5 được gọi tự động khi chúng tôi truy cập thuộc tính class person:
def __init__[self, name]:
self.__name=name
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
def delname[self]:
print['delname[] called']
del self.__name
# Set property to use get_name, set_name
# and del_name methods
name=property[getname, setname, delname]
1. Theo cách tương tự, phương thức class person:
def __init__[self, name]:
self.__name=name
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
def delname[self]:
print['delname[] called']
del self.__name
# Set property to use get_name, set_name
# and del_name methods
name=property[getname, setname, delname]
9 được gọi khi chúng ta gán giá trị cho thuộc tính class person:
def __init__[self, name]:
self.__name=name
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
def delname[self]:
print['delname[] called']
del self.__name
# Set property to use get_name, set_name
# and del_name methods
name=property[getname, setname, delname]
1. Nó cũng che giấu thuộc tính thể hiện class person:
def __init__[self, name]:
self.__name=name
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
def delname[self]:
print['delname[] called']
del self.__name
# Set property to use get_name, set_name
# and del_name methods
name=property[getname, setname, delname]
3.Theo cách tương tự, bạn có thể chỉ định phương thức Deleter cho thuộc tính, như được hiển thị trong tập lệnh dưới đây.
class person:
def __init__[self, name]:
self.__name=name
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
def delname[self]:
print['delname[] called']
del self.__name
# Set property to use get_name, set_name
# and del_name methods
name=property[getname, setname, delname]
Hàm
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> del p1.name
delname[] called
2 sẽ được gọi khi bạn xóa thuộc tính class person:
def __init__[self, name]:
self.__name=name
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
def delname[self]:
print['delname[] called']
del self.__name
# Set property to use get_name, set_name
# and del_name methods
name=property[getname, setname, delname]
1.>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> del p1.name
delname[] called
Theo cách này, chúng ta có thể xác định một thuộc tính trong lớp bằng hàm
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
4 trong Python.@Property Decorator giúp dễ dàng khai báo một tài sản thay vì gọi hàm
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
4. Tìm hiểu về nó tiếp theo.
7 là chức năng để nhận giá trị của thuộc tính>>> human.__dict__
{'temperature': 37}
>>> human.__dict__
{'temperature': 37}
7 là chức năng để nhận giá trị của thuộc tính>>> human.__dict__
{'temperature': 37}
8 là chức năng đặt giá trị của thuộc tính>>> human.__dict__
{'temperature': 37}
9 là chức năng xóa thuộc tính
>>> human.__dict__
{'temperature': 37}
# Making Getters and Setter methods
class Celsius:
def __init__[self, temperature=0]:
self.set_temperature[temperature]
def to_fahrenheit[self]:
return [self.get_temperature[] * 1.8] + 32
# getter method
def get_temperature[self]:
return self._temperature
# setter method
def set_temperature[self, value]:
if value < -273.15:
raise ValueError["Temperature below -273.15 is not possible."]
self._temperature = value
0 là một chuỗi [như một bình luận]class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
Chúng ta có thể tạo các đối tượng ra khỏi lớp này và thao tác thuộc tính
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> del p1.name
delname[] called
8 như chúng ta muốn:# Basic method of setting and getting attributes in Python
class Celsius:
def __init__[self, temperature=0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
# Create a new object
human = Celsius[]
# Set the temperature
human.temperature = 37
# Get the temperature attribute
print[human.temperature]
# Get the to_fahrenheit method
print[human.to_fahrenheit[]]
Đầu ra
37 98.60000000000001
Các vị trí thập phân bổ sung khi chuyển đổi thành Fahrenheit là do lỗi số học điểm nổi. Để tìm hiểu thêm, hãy truy cập lỗi số học của Python Point.
Bất cứ khi nào chúng tôi gán hoặc truy xuất bất kỳ thuộc tính đối tượng nào như
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> del p1.name
delname[] called
8 Như được hiển thị ở trên, Python tìm kiếm nó trong thuộc tính từ điển class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
0 tích hợp của đối tượng.>>> human.__dict__
{'temperature': 37}
Do đó,
class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
1 trong nội bộ trở thành class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
2.Sử dụng getters và setters
Giả sử chúng ta muốn mở rộng khả năng sử dụng của lớp C, được xác định ở trên. Chúng tôi biết rằng nhiệt độ của bất kỳ vật thể nào cũng không thể đạt dưới -273,15 độ C.
Hãy cập nhật mã của chúng tôi để thực hiện ràng buộc giá trị này.
Một giải pháp rõ ràng cho các hạn chế trên sẽ là ẩn thuộc tính
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> del p1.name
delname[] called
8 [làm cho nó riêng tư] và xác định các phương thức Getter và Setter mới để thao tác nó. Điều này có thể được thực hiện như sau:# Making Getters and Setter methods
class Celsius:
def __init__[self, temperature=0]:
self.set_temperature[temperature]
def to_fahrenheit[self]:
return [self.get_temperature[] * 1.8] + 32
# getter method
def get_temperature[self]:
return self._temperature
# setter method
def set_temperature[self, value]:
if value < -273.15:
raise ValueError["Temperature below -273.15 is not possible."]
self._temperature = value
Như chúng ta có thể thấy, phương pháp trên giới thiệu hai phương thức
class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
4 và class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
5 mới.Hơn nữa,
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> del p1.name
delname[] called
8 đã được thay thế bằng class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
7. Một dấu gạch dưới class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
8 lúc đầu được sử dụng để biểu thị các biến riêng trong Python.Bây giờ, hãy sử dụng triển khai này:
class person:
def __init__[self]:
self.__name=''
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
name=property[getname, setname]
0Đầu ra
class person:
def __init__[self]:
self.__name=''
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
name=property[getname, setname]
1Bản cập nhật này đã thực hiện thành công các hạn chế mới. Chúng tôi không còn được phép đặt nhiệt độ dưới -273,15 độ C.
Lưu ý: Các biến riêng tư không thực sự tồn tại trong Python. Đơn giản là có các tiêu chuẩn để được tuân theo. Bản thân ngôn ngữ không áp dụng bất kỳ hạn chế nào.: The private variables don't actually exist in Python. There are simply norms to be followed. The language itself doesn't apply any restrictions.
class person:
def __init__[self]:
self.__name=''
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
name=property[getname, setname]
2Tuy nhiên, vấn đề lớn hơn với bản cập nhật trên là tất cả các chương trình đã triển khai lớp trước của chúng tôi phải sửa đổi mã của họ từ
class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
9 thành # Basic method of setting and getting attributes in Python
class Celsius:
def __init__[self, temperature=0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
# Create a new object
human = Celsius[]
# Set the temperature
human.temperature = 37
# Get the temperature attribute
print[human.temperature]
# Get the to_fahrenheit method
print[human.to_fahrenheit[]]
0 và tất cả các biểu thức như # Basic method of setting and getting attributes in Python
class Celsius:
def __init__[self, temperature=0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
# Create a new object
human = Celsius[]
# Set the temperature
human.temperature = 37
# Get the temperature attribute
print[human.temperature]
# Get the to_fahrenheit method
print[human.to_fahrenheit[]]
1 thành # Basic method of setting and getting attributes in Python
class Celsius:
def __init__[self, temperature=0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
# Create a new object
human = Celsius[]
# Set the temperature
human.temperature = 37
# Get the temperature attribute
print[human.temperature]
# Get the to_fahrenheit method
print[human.to_fahrenheit[]]
2.Việc tái cấu trúc này có thể gây ra vấn đề trong khi xử lý hàng trăm ngàn dòng mã.
Nói chung, bản cập nhật mới của chúng tôi không tương thích ngược. Đây là nơi
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> del p1.name
delname[] called
6 đến giải cứu.Lớp tài sản
Một cách pythonic để giải quyết vấn đề trên là sử dụng lớp
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
7. Đây là cách chúng tôi có thể cập nhật mã của mình:class person:
def __init__[self]:
self.__name=''
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
name=property[getname, setname]
3Chúng tôi đã thêm một hàm
# Basic method of setting and getting attributes in Python
class Celsius:
def __init__[self, temperature=0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
# Create a new object
human = Celsius[]
# Set the temperature
human.temperature = 37
# Get the temperature attribute
print[human.temperature]
# Get the to_fahrenheit method
print[human.to_fahrenheit[]]
5 bên trong class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
4 và class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
5 để quan sát rõ ràng rằng chúng đang được thực thi.Dòng cuối cùng của mã tạo ra một đối tượng thuộc tính
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> del p1.name
delname[] called
8. Nói một cách đơn giản, thuộc tính đính kèm một số mã [# Basic method of setting and getting attributes in Python
class Celsius:
def __init__[self, temperature=0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
# Create a new object
human = Celsius[]
# Set the temperature
human.temperature = 37
# Get the temperature attribute
print[human.temperature]
# Get the to_fahrenheit method
print[human.to_fahrenheit[]]
9 và 37 98.600000000000010] vào các quyền truy cập thuộc tính thành viên [
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> del p1.name
delname[] called
8].
Hãy sử dụng mã cập nhật này:
class person:
def __init__[self]:
self.__name=''
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
name=property[getname, setname]
4Đầu ra
class person:
def __init__[self]:
self.__name=''
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
name=property[getname, setname]
5Như chúng ta có thể thấy, bất kỳ mã nào lấy lại giá trị của
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> del p1.name
delname[] called
8 sẽ tự động gọi class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
4 thay vì tra cứu từ điển [__dict__]. Tương tự, bất kỳ mã nào gán giá trị cho >>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> del p1.name
delname[] called
8 sẽ tự động gọi class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
5.Chúng ta thậm chí có thể thấy ở trên rằng
class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
5 được gọi ngay cả khi chúng ta tạo ra một đối tượng.class person:
def __init__[self]:
self.__name=''
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
name=property[getname, setname]
6Bạn có thể đoán tại sao?
Lý do là khi một đối tượng được tạo, phương thức
37 98.600000000000017 được gọi. Phương pháp này có dòng
37 98.600000000000018. Biểu thức này tự động gọi
class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
5.Tương tự, mọi quyền truy cập như
>>> human.__dict__
{'temperature': 37}
0 sẽ tự động gọi class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
4. Đây là những gì tài sản làm. Dưới đây là một vài ví dụ nữa.class person:
def __init__[self]:
self.__name=''
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
name=property[getname, setname]
7Bằng cách sử dụng
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
7, chúng ta có thể thấy rằng không cần sửa đổi trong việc thực hiện ràng buộc giá trị. Vì vậy, việc thực hiện của chúng tôi là tương thích ngược.Lưu ý: Giá trị nhiệt độ thực tế được lưu trữ trong biến riêng
7. Thuộc tính class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
8 là một đối tượng thuộc tính cung cấp giao diện cho biến riêng tư này.: The actual temperature value is stored in
the private >>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> del p1.name
delname[] called
class Celsius:
def __init__[self, temperature = 0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
7 variable. The >>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> del p1.name
delname[] called
8 attribute is a property object which provides an interface to this private variable.Người trang trí @Property
Trong Python,
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
4 là một hàm tích hợp tạo và trả về một đối tượng >>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
7. Cú pháp của chức năng này là:class person:
def __init__[self]:
self.__name=''
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
name=property[getname, setname]
8where,
7 là chức năng để nhận giá trị của thuộc tính>>> human.__dict__ {'temperature': 37}
8 là chức năng đặt giá trị của thuộc tính>>> human.__dict__ {'temperature': 37}
9 là chức năng xóa thuộc tính>>> human.__dict__ {'temperature': 37}
0 là một chuỗi [như một bình luận]# Making Getters and Setter methods class Celsius: def __init__[self, temperature=0]: self.set_temperature[temperature] def to_fahrenheit[self]: return [self.get_temperature[] * 1.8] + 32 # getter method def get_temperature[self]: return self._temperature # setter method def set_temperature[self, value]: if value < -273.15: raise ValueError["Temperature below -273.15 is not possible."] self._temperature = value
Như được thấy từ việc thực hiện, các đối số chức năng này là tùy chọn. Vì vậy, một đối tượng thuộc tính có thể chỉ đơn giản là được tạo như sau.
class person:
def __init__[self]:
self.__name=''
def setname[self, name]:
print['setname[] called']
self.__name=name
def getname[self]:
print['getname[] called']
return self.__name
name=property[getname, setname]
9Một đối tượng thuộc tính có ba phương thức,
# Making Getters and Setter methods
class Celsius:
def __init__[self, temperature=0]:
self.set_temperature[temperature]
def to_fahrenheit[self]:
return [self.get_temperature[] * 1.8] + 32
# getter method
def get_temperature[self]:
return self._temperature
# setter method
def set_temperature[self, value]:
if value < -273.15:
raise ValueError["Temperature below -273.15 is not possible."]
self._temperature = value
1, # Making Getters and Setter methods
class Celsius:
def __init__[self, temperature=0]:
self.set_temperature[temperature]
def to_fahrenheit[self]:
return [self.get_temperature[] * 1.8] + 32
# getter method
def get_temperature[self]:
return self._temperature
# setter method
def set_temperature[self, value]:
if value < -273.15:
raise ValueError["Temperature below -273.15 is not possible."]
self._temperature = value
2 và # Making Getters and Setter methods
class Celsius:
def __init__[self, temperature=0]:
self.set_temperature[temperature]
def to_fahrenheit[self]:
return [self.get_temperature[] * 1.8] + 32
# getter method
def get_temperature[self]:
return self._temperature
# setter method
def set_temperature[self, value]:
if value < -273.15:
raise ValueError["Temperature below -273.15 is not possible."]
self._temperature = value
3 để chỉ định >>> human.__dict__
{'temperature': 37}
7, >>> human.__dict__
{'temperature': 37}
8 và >>> human.__dict__
{'temperature': 37}
9 tại một điểm sau. Điều này có nghĩa là, dòng:>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
0có thể bị phá vỡ như:
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
1Hai đoạn mã này là tương đương.
Các lập trình viên quen thuộc với các nhà trang trí Python có thể nhận ra rằng cấu trúc trên có thể được thực hiện như là nhà trang trí.
Chúng tôi thậm chí không thể xác định tên
# Basic method of setting and getting attributes in Python
class Celsius:
def __init__[self, temperature=0]:
self.temperature = temperature
def to_fahrenheit[self]:
return [self.temperature * 1.8] + 32
# Create a new object
human = Celsius[]
# Set the temperature
human.temperature = 37
# Get the temperature attribute
print[human.temperature]
# Get the to_fahrenheit method
print[human.to_fahrenheit[]]
9 và 37 98.600000000000010 vì chúng không cần thiết và gây ô nhiễm không gian tên lớp.
Đối với điều này, chúng tôi sử dụng lại tên
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> del p1.name
delname[] called
8 trong khi xác định các hàm getter và setter của chúng tôi. Hãy xem cách thực hiện điều này như một người trang trí:>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
2Đầu ra
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
3Việc thực hiện trên là đơn giản và hiệu quả. Đó là cách khuyến nghị để sử dụng
>>> from person import person
>>> p1=person[]
>>> p1.name="Steve"
setname[] called
>>> p1.name
getname[] called
'Steve'
7.