Chào mừng bạn đến blog Kế Toán.VN Trang Chủ

Table of Content

Cách tự in bằng Python ✅ Chi Tiết

Kinh Nghiệm Hướng dẫn Cách tự in bằng Python 2022

Lê Hữu Kông đang tìm kiếm từ khóa Cách tự in bằng Python được Cập Nhật vào lúc : 2022-12-25 03:15:17 . Với phương châm chia sẻ Bí quyết Hướng dẫn trong nội dung bài viết một cách Chi Tiết Mới Nhất. Nếu sau khi đọc nội dung bài viết vẫn ko hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Admin lý giải và hướng dẫn lại nha.

Nếu bạn đã lập trình bằng Python (lập trình hướng đối tượng) thuở nào gian, thì bạn chắc như đinh đã phát hiện những phương thức có tham số đầu tiên là

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)3 Nội dung chính Show
    Bản thân trong Python là gì?Tại sao bản thân được xác định rõ ràng mọi lúc?Điều gì xảy ra trong nội bộ?Bản ngã hoàn toàn có thể tránh đượcTự ở đây để ở lại__init__() không phải là hàm tạoSử dụng __new__ hay __init__?__ tự __ trong Python là gì?Bản thân được sử dụng ra làm sao trong Python?Tự trả về trong Python là gì?init và self trong Python là gì?

Trước tiên tất cả chúng ta hãy nỗ lực hiểu tham số tự định kỳ này là gì

Bản thân trong Python là gì?

Trong lập trình hướng đối tượng, bất kể lúc nào tất cả chúng ta định nghĩa những phương thức cho một lớp, tất cả chúng ta sử dụng

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)3 làm tham số đầu tiên trong mỗi trường hợp. Hãy xem định nghĩa của một lớp mang tên là cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)5class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")

Trong trường hợp này, tất cả những phương thức, kể cả

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)6, đều có tham số đầu tiên là cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)3

Chúng ta biết rằng lớp là bản thiết kế cho những đối tượng. Bản thiết kế này hoàn toàn có thể được sử dụng để tạo ra nhiều đối tượng. Hãy tạo hai đối tượng rất khác nhau từ lớp trên

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)

Từ khóa

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)3 được sử dụng để đại diện cho một thể hiện (đối tượng) của lớp đã cho. Trong trường hợp này, hai đối tượng cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)5 class Point(object): def __init__(self,x = 0,y = 0): self.x = x self.y = y def distance(self): """Find distance from origin""" return (self.x**2 + self.y**2) ** 0.50 và class Point(object): def __init__(self,x = 0,y = 0): self.x = x self.y = y def distance(self): """Find distance from origin""" return (self.x**2 + self.y**2) ** 0.51 có thuộc tính riêng là class Point(object): def __init__(self,x = 0,y = 0): self.x = x self.y = y def distance(self): """Find distance from origin""" return (self.x**2 + self.y**2) ** 0.52 và class Point(object): def __init__(self,x = 0,y = 0): self.x = x self.y = y def distance(self): """Find distance from origin""" return (self.x**2 + self.y**2) ** 0.53. Nếu không còn đối số tự, thì cùng một lớp không thể chứa thông tin cho tất cả hai đối tượng này

Tuy nhiên, do lớp chỉ là một bản thiết kế nên

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)3 được cho phép truy cập vào những thuộc tính và phương thức của từng đối tượng trong python. Điều này được cho phép mỗi đối tượng có những thuộc tính và phương thức riêng. Do đó, thậm chí rất lâu trước khi tạo những đối tượng này, chúng tôi tham chiếu những đối tượng là cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)3 trong khi định nghĩa lớp

Tại sao bản thân được xác định rõ ràng mọi lúc?

Ngay cả khi tất cả chúng ta hiểu cách sử dụng của

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)3, nó vẫn có vẻ như kỳ lạ, đặc biệt là đối với những lập trình viên đến từ những ngôn từ khác, rằng cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)3 được truyền dưới dạng tham số một cách rõ ràng mọi khi tất cả chúng ta định nghĩa một phương thức. Như The Zen of Python đã nói, "Rõ ràng tốt hơn ngầm"

Vì vậy, tại sao tất cả chúng ta nên phải làm điều này? . Chúng ta có một lớp

class Point(object): def __init__(self,x = 0,y = 0): self.x = x self.y = y def distance(self): """Find distance from origin""" return (self.x**2 + self.y**2) ** 0.58 định nghĩa một phương thức class Point(object): def __init__(self,x = 0,y = 0): self.x = x self.y = y def distance(self): """Find distance from origin""" return (self.x**2 + self.y**2) ** 0.59 để tính khoảng chừng cách từ gốc tọa độclass Point(object): def __init__(self,x = 0,y = 0): self.x = x self.y = y def distance(self): """Find distance from origin""" return (self.x**2 + self.y**2) ** 0.5

Bây giờ tất cả chúng ta hãy khởi tạo lớp này và tìm khoảng chừng cách

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)0

Trong ví dụ trên,

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)00 xác định ba tham số nhưng chúng tôi chỉ chuyển hai tham số (6 và 8). Tương tự, cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)01 yêu cầu một đối số nhưng không còn đối số nào được thông qua. Tại sao Python không phàn nàn về số đối số này sẽ không khớp?

Điều gì xảy ra trong nội bộ?

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)02 và cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)03 trong ví dụ trên là rất khác nhau và không hoàn toàn giống nhaucat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)5

Chúng ta hoàn toàn có thể thấy rằng cái đầu tiên là một hàm và cái thứ hai là một phương thức. Một điều đặc biệt về những phương thức (trong Python) là chính đối tượng được truyền làm đối số đầu tiên cho hàm tương ứng

Trong trường hợp của ví dụ trên, cuộc gọi phương thức

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)04 thực sự tương đương với cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)05

Nói chung, khi tất cả chúng ta gọi một phương thức với một số trong những đối số, hàm lớp tương ứng được gọi là phương pháp đặt đối tượng của phương thức trước đối số đầu tiên. Vì vậy, bất kể điều gì như

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)06 trở thành cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)07. Quá trình gọi là tự động trong khi quá trình nhận thì không (rõ ràng)

Đây là nguyên do tham số đầu tiên của hàm trong lớp phải là chính đối tượng đó. Viết tham số này là

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)3 chỉ là một quy ước. Nó không phải là từ khóa và không còn ý nghĩa đặc biệt trong Python. Chúng tôi hoàn toàn có thể sử dụng những tên khác (như cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)09) nhưng điều đó không được khuyến khích. Hầu hết những nhà phát triển đều phản đối việc sử dụng những tên khác với tên cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)3 và làm giảm kĩ năng đọc của mã (Khả năng đọc được tính)

Bản ngã hoàn toàn có thể tránh được

Bây giờ bạn đã rõ rằng bản thân đối tượng (thể hiện) được truyền tự động dưới dạng đối số đầu tiên. Hành vi ngầm định này hoàn toàn có thể tránh được khi tạo một phương thức tĩnh. Xét ví dụ đơn giản sau

class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")3

Ở đây,

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)51 là một hàm trang trí làm cho cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)52 trở nên tĩnh. Hãy để chúng tôi khởi tạo lớp này và gọi phương thứcclass Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")6

Từ ví dụ trên, tất cả chúng ta hoàn toàn có thể thấy rằng hành vi ngầm truyền đối tượng làm đối số đầu tiên đã được tránh khi sử dụng một phương thức tĩnh. Nói chung, những phương thức tĩnh hoạt động và sinh hoạt giải trí in như những hàm cũ đơn giản (Vì tất cả những đối tượng của một lớp đều chia sẻ những phương thức tĩnh)

class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")7

Tự ở đây để ở lại

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)3 rõ ràng không phải là duy nhất đối với Python. Ý tưởng này được mượn từ Modula-3. Sau đây là trường hợp sử dụng khi nó trở nên hữu ích

Không có khai báo biến rõ ràng trong Python. Họ khởi đầu hành vi trong trách nhiệm đầu tiên. Việc sử dụng

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)3 giúp thuận tiện và đơn giản phân biệt Một trong những thuộc tính (và phương thức) của thể hiện với những biến cục bộ

Trong ví dụ đầu tiên, bản thân. x là một thuộc tính thể hiện trong khi x là một biến cục bộ. Chúng rất khác nhau và chúng nằm trong những không khí tên rất khác nhau

Nhiều người đã đề xuất biến self thành một từ khóa trong Python, như

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)55 trong C++ và Java. Điều này sẽ vô hiệu việc sử dụng dư thừa của cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)3 rõ ràng từ list tham số chính thức trong những phương thức

Mặc dù ý tưởng này còn có vẻ như hứa hẹn nhưng nó sẽ không xảy ra. Ít nhất là không phải trong tương lai gần. Lý do đó đó là kĩ năng tương thích ngược. Đây là một blog của chính người tạo ra Python lý giải nguyên do tại sao bản thân rõ ràng phải ở lại

__init__() không phải là hàm tạo

Một kết luận quan trọng hoàn toàn có thể được rút ra từ thông tin cho tới nay là phương thức

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)00 không phải là hàm tạo. Nhiều lập trình viên Python ngây thơ bị nhầm lẫn với nó vì cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)00 được gọi khi tất cả chúng ta tạo một đối tượng

Kiểm tra kỹ hơn sẽ thấy rằng tham số đầu tiên trong

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)00 đó đó là đối tượng (đối tượng đã tồn tại). Hàm cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)00 được gọi ngay sau khi đối tượng được tạo và được sử dụng để khởi tạo nó

Về mặt kỹ thuật, hàm tạo là một phương thức tự tạo đối tượng. Trong Python, phương thức này là

class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")31. Một chữ ký phổ biến của phương pháp này làcat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)7

Khi

class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")31 được gọi, chính lớp đó sẽ tự động được chuyển thành đối số đầu tiên (class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")33)

Một lần nữa, in như bản thân, cls chỉ là một quy ước đặt tên. Ngoài ra, *args và **kwargs được sử dụng để lấy số lượng đối số tùy ý trong khi gọi phương thức trong Python

Một số điều quan trọng cần nhớ khi triển khai

class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")31 là
    class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")31 luôn luôn được gọi trước cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)00Đối số đầu tiên là chính lớp đó được truyền ngầmLuôn trả về một đối tượng hợp lệ từ class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")31. Không bắt buộc, nhưng hiệu suất cao chính của nó là tạo và trả về một đối tượng

Hãy xem một ví dụ

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)4

Bây giờ, hãy khởi tạo nó

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)0

Ví dụ này minh họa rằng

class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")31 được gọi trước cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)00. Chúng ta cũng hoàn toàn có thể thấy rằng tham số cls trong class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")31 đó đó là lớp đó (class Point(object): def __init__(self,x = 0,y = 0): self.x = x self.y = y def distance(self): """Find distance from origin""" return (self.x**2 + self.y**2) ** 0.58). Cuối cùng, đối tượng được tạo bằng phương pháp gọi phương thức class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")31 trên lớp cơ sở đối tượng

Trong Python,

class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")63 là lớp cơ sở mà tất cả những lớp khác được dẫn xuất từ ​​đó. Trong ví dụ trên, chúng tôi đã thực hiện việc này bằng phương pháp sử dụng super()

Sử dụng __new__ hay __init__?

Bạn hoàn toàn có thể đã thấy

cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)00 rất thường xuyên nhưng việc sử dụng class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")31 rất hiếm. Điều này là vì hầu hết thời gian bạn không cần ghi đè lên nó. Nói chung, cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)00 được sử dụng để khởi tạo đối tượng mới được tạo trong khi class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")31 được sử dụng để trấn áp cách tạo đối tượng

Chúng ta cũng hoàn toàn có thể sử dụng

class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")31 để khởi tạo những thuộc tính của một đối tượng, nhưng theo logic thì nó phải nằm trong cat1 = Cat('Andy', 2) cat2 = Cat('Phoebe', 3)00

Tuy nhiên, một cách sử dụng thực tế của

class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")31 hoàn toàn có thể là hạn chế số lượng đối tượng được tạo từ một lớp

Giả sử tất cả chúng ta muốn có một lớp

class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")71 để tạo những thể tân tiến diện cho bốn đỉnh của một hình vuông vắn. Chúng ta hoàn toàn có thể thừa kế từ lớp trước class Point(object): def __init__(self,x = 0,y = 0): self.x = x self.y = y def distance(self): """Find distance from origin""" return (self.x**2 + self.y**2) ** 0.58 (ví dụ thứ hai trong nội dung bài viết này) và sử dụng class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is self.name. I am self.age years old.") def make_sound(self): print("Meow")31 để triển khai hạn chế này. Đây là một ví dụ để hạn chế một lớp chỉ có bốn trường hợp

__ tự __ trong Python là gì?

Tham số self là tham chiếu đến phiên bản hiện tại của lớp và được sử dụng để truy cập những biến thuộc về lớp.

Bản thân được sử dụng ra làm sao trong Python?

Bản thân được sử dụng để màn biểu diễn thể hiện của lớp . Với từ khóa này, bạn hoàn toàn có thể truy cập những thuộc tính và phương thức của lớp trong python. Nó link những thuộc tính với những đối số đã cho. Lý do tại sao chúng tôi sử dụng self là vì Python không sử dụng cú pháp '@' để chỉ những thuộc tính thể hiện.

Tự trả về trong Python là gì?

Trả về self từ một phương thức đơn giản nghĩa là phương thức của bạn trả về một tham chiếu đến đối tượng thể hiện mà nó được gọi trên đó . Điều này đôi khi hoàn toàn có thể được nhìn thấy khi sử dụng với những API hướng đối tượng được thiết kế dưới dạng giao diện thông thạo khuyến khích xếp tầng phương thức.

init và self trong Python là gì?

Từ khóa self in trong Python được sử dụng cho tất cả những phiên bản trong một lớp . Bằng cách sử dụng từ khóa self, người ta hoàn toàn có thể thuận tiện và đơn giản truy cập tất cả những thể hiện được định nghĩa trong một lớp, gồm có những phương thức và thuộc tính của nó. trong đó. __init__ là một trong những phương thức dành riêng trong Python. Trong lập trình hướng đối tượng, nó được gọi là hàm tạo. Tải thêm tài liệu liên quan đến nội dung bài viết Cách tự in bằng Python programming python

Video Cách tự in bằng Python ?

Bạn vừa Read Post Với Một số hướng dẫn một cách rõ ràng hơn về Video Cách tự in bằng Python tiên tiến nhất

Chia Sẻ Link Cập nhật Cách tự in bằng Python miễn phí

Heros đang tìm một số trong những ShareLink Tải Cách tự in bằng Python miễn phí.

Thảo Luận thắc mắc về Cách tự in bằng Python

Nếu sau khi đọc nội dung bài viết Cách tự in bằng Python vẫn chưa hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Mình lý giải và hướng dẫn lại nha #Cách #tự #bằng #Python - 2022-12-25 03:15:17

Post a Comment