Phương thức được định nghĩa trong lớp hình chữ nhật được sử dụng để vẽ hình chữ nhật Python là gì?

lớp Hình chữ nhật [đối tượng]. def __init__[self,width=2,height=3,color='r']. bản thân. chiều cao = chiều cao bản thân. chiều rộng = chiều rộng bản thân. color=color def drawRectangle[self]. nhập matplotlib. pyplot dưới dạng plt plt. gca[]. add_patch[plt. Hình chữ nhật [[0, 0], chính nó. chiều rộng, bản thân. chiều cao, fc=bản thân. màu]] plt. trục ['được chia tỷ lệ'] plt. chỉ[]

Chúng tôi cung cấp nhiều lựa chọn các khóa học từ các trường đại học và tổ chức văn hóa hàng đầu từ khắp nơi trên thế giới. Chúng được cung cấp từng bước một và có thể truy cập được trên thiết bị di động, máy tính bảng và máy tính để bàn, vì vậy bạn có thể phù hợp với việc học xung quanh cuộc sống của mình

Chúng tôi tin rằng việc học phải là một trải nghiệm xã hội, thú vị, vì vậy các khóa học của chúng tôi mang đến cơ hội thảo luận những gì bạn đang học với những người khác trong quá trình học, giúp bạn có những khám phá mới mẻ và hình thành những ý tưởng mới
Bạn có thể mở khóa những cơ hội mới với quyền truy cập không giới hạn vào hàng trăm khóa học ngắn hạn trực tuyến trong một năm bằng cách đăng ký gói Không giới hạn của chúng tôi. Xây dựng kiến ​​thức của bạn với các trường đại học và tổ chức hàng đầu

Tìm hiểu thêm về cách FutureLearn đang thay đổi cách tiếp cận giáo dục

Giả sử rằng chúng ta muốn một lớp biểu diễn một hình chữ nhật nằm ở đâu đó trong mặt phẳng XY. Câu hỏi đặt ra là chúng ta phải cung cấp thông tin gì để chỉ định một hình chữ nhật như vậy?

Có một vài khả năng. chúng ta có thể chỉ định tâm của hình chữ nhật [hai tọa độ] và kích thước của nó [chiều rộng và chiều cao]; . Một lựa chọn thông thường là chỉ định góc trên bên trái của hình chữ nhật và kích thước

Một lần nữa, chúng ta sẽ định nghĩa một lớp mới và cung cấp cho nó một phương thức khởi tạo và một phương thức chuyển đổi chuỗi

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17

class Rectangle:
    """ A class to manufacture rectangle objects """

    def __init__[self, posn, w, h]:
        """ Initialize rectangle at posn, with width w, height h """
        self.corner = posn
        self.width = w
        self.height = h

    def __str__[self]:
        return  "[{0}, {1}, {2}]"
                  .format[self.corner, self.width, self.height]

box = Rectangle[Point[0, 0], 100, 200]
bomb = Rectangle[Point[100, 80], 5, 10]    # In my video game
print["box: ", box]
print["bomb: ", bomb]

Để chỉ định góc trên bên trái, chúng tôi đã nhúng một đối tượng Điểm [như chúng tôi đã sử dụng trong chương trước] trong đối tượng mới của mình. . Chúng tôi tạo hai đối tượng Rectangle object! We create two new Rectangle mới, sau đó in chúng ra.

box: [[0, 0], 100, 200]
bomb: [[100, 80], 5, 10]

Toán tử dấu chấm soạn. Biểu thức hộp. góc phố. x có nghĩa là “Chuyển đến đối tượng mà hộp đề cập đến và chọn thuộc tính của nó có tên là corner, then go to that object and select its attribute named x”.

Hình vẽ thể hiện trạng thái của đối tượng này

16. 2. Các đối tượng có thể thay đổi

Chúng ta có thể thay đổi trạng thái của một đối tượng bằng cách gán một trong các thuộc tính của nó. Ví dụ: để tăng kích thước của hình chữ nhật mà không thay đổi vị trí của nó, chúng ta có thể sửa đổi các giá trị của chiều rộng . :

box.width += 50
box.height += 100

Tất nhiên, chúng tôi có thể muốn cung cấp một phương thức để đóng gói điều này bên trong lớp. Chúng tôi cũng sẽ cung cấp một phương pháp khác để di chuyển vị trí của hình chữ nhật sang nơi khác

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12

class Rectangle:
    # ...

    def grow[self, delta_width, delta_height]:
        """ Grow [or shrink] this object by the deltas """
        self.width += delta_width
        self.height += delta_height

    def move[self, dx, dy]:
        """ Move this object by the deltas """
        self.corner.x += dx
        self.corner.y += dy

Hãy để chúng tôi thử điều này

>>> r = Rectangle[Point[10,5], 100, 50]
>>> print[r]
[[10, 5], 100, 50]
>>> r.grow[25, -10]
>>> print[r]
[[10, 5], 125, 40]
>>> r.move[-10, 10]
print[r]
[[0, 15], 125, 40]

16. 3. giống nhau

Ý nghĩa của từ “giống nhau” dường như hoàn toàn rõ ràng cho đến khi chúng ta suy nghĩ kỹ về nó, và sau đó chúng ta nhận ra rằng có nhiều điều hơn chúng ta mong đợi ban đầu

Ví dụ: nếu chúng ta nói, "Alice và Bob có cùng một chiếc xe hơi", chúng ta muốn nói rằng chiếc xe của cô ấy và của anh ấy có cùng kiểu dáng và kiểu dáng, nhưng chúng là hai chiếc xe khác nhau. Nếu chúng ta nói, "Alice và Bob có cùng một người mẹ", chúng ta muốn nói rằng mẹ của cô ấy và của anh ấy là cùng một người

Khi chúng ta nói về các đối tượng, có một sự mơ hồ tương tự. Ví dụ: nếu hai Điểm giống nhau, điều đó có nghĩa là chúng chứa cùng một dữ liệu [tọa độ] hay chúng thực sự là cùng một đối tượng?>> p1 = Point[3, 4] >>> p2 = Point[3, 4] >>> p1 is p2 False

Mặc dù p1p2 có cùng tọa độ . Nếu chúng ta gán p1 cho p3 , thì hai biến là bí danh của .

________số 8_______

Loại đẳng thức này được gọi là đẳng thức nông vì nó chỉ so sánh các tham chiếu, không so sánh nội dung của các đối tượng

Để so sánh nội dung của các đối tượng — bằng nhau sâu sắc — chúng ta có thể viết một hàm gọi là same_coordinates .

1
2

class Rectangle:
    """ A class to manufacture rectangle objects """

    def __init__[self, posn, w, h]:
        """ Initialize rectangle at posn, with width w, height h """
        self.corner = posn
        self.width = w
        self.height = h

    def __str__[self]:
        return  "[{0}, {1}, {2}]"
                  .format[self.corner, self.width, self.height]

box = Rectangle[Point[0, 0], 100, 200]
bomb = Rectangle[Point[100, 80], 5, 10]    # In my video game
print["box: ", box]
print["bomb: ", bomb]
0

Bây giờ nếu chúng ta tạo hai đối tượng khác nhau chứa cùng một dữ liệu, chúng ta có thể sử dụng same_point để tìm hiểu xem chúng có đại diện cho các điểm giống nhau không .

class Rectangle:
    """ A class to manufacture rectangle objects """

    def __init__[self, posn, w, h]:
        """ Initialize rectangle at posn, with width w, height h """
        self.corner = posn
        self.width = w
        self.height = h

    def __str__[self]:
        return  "[{0}, {1}, {2}]"
                  .format[self.corner, self.width, self.height]

box = Rectangle[Point[0, 0], 100, 200]
bomb = Rectangle[Point[100, 80], 5, 10]    # In my video game
print["box: ", box]
print["bomb: ", bomb]
1

Tất nhiên, nếu hai biến cùng chỉ một đối tượng thì chúng có mức độ nông và sâu bằng nhau.

Coi chừng ==

“Khi tôi dùng một từ,” Humpty Dumpty nói, với một giọng khá khinh thường, “nó chỉ có nghĩa theo ý tôi muốn - không hơn không kém. " Alice ở xứ sở thần tiên

Python có một tính năng mạnh mẽ cho phép người thiết kế một lớp quyết định một thao tác như thế nào == hoặc

Chủ Đề