Tìm hiểu cách xác định một lớp trong Python và những gì nó có thể bao gồm.
Bạn đang xem : cách xác định một lớp trong python
Lớp Python
Python là một ngôn ngữ hoàn toàn hướng đối tượng.
Bạn đã làm việc với các lớp và đối tượng ngay từ phần đầu của các bài hướng dẫn này.
Mọi phần tử trong chương trình Python là một đối tượng của một lớp. Một số, chuỗi, danh sách, từ điển, v.v., được sử dụng trong một chương trình là một đối tượng của một lớp dựng sẵn tương ứng.
Bạn có thể truy xuất tên lớp của các biến hoặc đối tượng bằng phương thức type () , như được hiển thị bên dưới.
Ví dụ: Các lớp tích hợp sẵn trong Python
& gt; & gt; & gt; num = 20
& gt; & gt; & gt; gõ (num)
& lt; lớp 'int' & gt;
& gt; & gt; & gt; s = "Python"
& gt; & gt; & gt; (các) loại
& lt; lớp 'str' & gt;
Xác định một lớp
Một lớp trong Python có thể được định nghĩa bằng từ khóa class
.
class & lt; ClassName & gt ;:
& lt; statement1 & gt;
& lt; statement2 & gt;
.
.
& lt; statementN & gt;
Theo cú pháp ở trên, một lớp được định nghĩa bằng từ khóa class
theo sau là tên lớp và toán tử :
sau tên lớp, điều này cho phép bạn tiếp tục dòng thụt lề tiếp theo để xác định các thành viên của lớp.
Những người sau là thành viên trong lớp.
Một lớp cũng có thể được định nghĩa mà không có bất kỳ thành viên nào. Ví dụ sau định nghĩa một lớp trống bằng cách sử dụng từ khóa pass
.
Ví dụ: Xác định lớp Python
class Sinh viên:
đi qua
Khởi tạo lớp sử dụng ký hiệu chức năng. Để tạo một đối tượng của lớp, chỉ cần gọi một lớp như một hàm không tham số trả về một đối tượng mới của lớp, như hình dưới đây.
Ví dụ: Tạo đối tượng của một lớp
std = Student ()
Ở trên, Student ()
trả về một đối tượng của lớp Student
, được gán cho một biến std
.
Lớp Student
là một lớp trống vì nó không chứa bất kỳ thành viên nào.
Thuộc tính Lớp
Thuộc tính lớp là các biến được định nghĩa trực tiếp trong lớp được chia sẻ bởi tất cả các đối tượng của lớp.
Các thuộc tính của lớp có thể được truy cập bằng cách sử dụng tên lớp cũng như sử dụng các đối tượng.
Ví dụ: Xác định lớp Python
class Sinh viên:
schoolName = 'Trường XYZ'
Ở trên, schoolName
là một thuộc tính lớp được định nghĩa bên trong một lớp. Giá trị của schoolName
sẽ không đổi cho tất cả các đối tượng trừ khi được sửa đổi một cách rõ ràng.
Ví dụ: Xác định Lớp Python
& gt; & gt; & gt; Student.schoolName
'Trường XYZ'
& gt; & gt; & gt; std = Sinh viên ()
& gt; & gt; & gt; std.schoolName
'Trường XYZ'
Như bạn có thể thấy, thuộc tính lớp được truy cập bởi Student.schoolName
cũng như std.schoolName
.
Thay đổi giá trị của thuộc tính lớp bằng cách sử dụng tên lớp sẽ thay đổi nó trên tất cả các trường hợp. Tuy nhiên, việc thay đổi giá trị thuộc tính lớp bằng cách sử dụng cá thể sẽ không phản ánh với các phiên bản hoặc lớp khác.
Ví dụ: Xác định Lớp Python
& gt; & gt; & gt; Student.schoolName = 'ABC School' # thay đổi giá trị thuộc tính bằng cách sử dụng tên lớp
& gt; & gt; & gt; std = Sinh viên ()
& gt; & gt; & gt; std.schoolName
Giá trị 'ABC School' # đã thay đổi cho tất cả các trường hợp
& gt; & gt; & gt; std.schoolName = 'My School' # thay đổi thuộc tính của phiên bản
& gt; & gt; & gt; std.schoolName
'Trường của tôi'
& gt; & gt; & gt; Student.schoolName # thay đổi cấp độ phiên bản không phản ánh đối với thuộc tính lớp
'Trường ABC'
& gt; & gt; & gt; std2 = Sinh viên ()
& gt; & gt; & gt; std2.schoolName
'Trường ABC'
Ví dụ sau minh họa việc sử dụng thuộc tính lớp count
.
Ví dụ: Student.py
class Sinh viên:
đếm = 0
def __init __ (bản thân):
Student.count + = 1
Trong ví dụ trên, số lượng là một thuộc tính trong lớp Sinh viên.
Bất cứ khi nào một đối tượng mới được tạo, giá trị của count
sẽ được tăng thêm 1.
Bây giờ bạn có thể truy cập thuộc tính count
sau khi tạo các đối tượng, như được hiển thị bên dưới.
Ví dụ:
& gt; & gt; & gt; std1 = Sinh viên ()
& gt; & gt; & gt; Student.count
1
& gt; & gt; & gt; std2 = Sinh viên ()
& gt; & gt; & gt; Student.count
2
Hàm tạo
Trong Python, phương thức khởi tạo được gọi tự động bất cứ khi nào một đối tượng mới của một lớp được khởi tạo, giống như các hàm tạo trong C # hoặc Java.
Hàm tạo phải có tên đặc biệt __init __ ()
và một tham số đặc biệt được gọi là self
.
Lưu ý:
Tham số đầu tiên của mỗi phương thức trong một lớp phải là self
, tham chiếu đến đối tượng đang gọi.
Tuy nhiên, bạn có thể đặt bất kỳ tên nào cho tham số đầu tiên, không nhất thiết phải là self
.
Ví dụ sau định nghĩa một phương thức khởi tạo.
Ví dụ: Constructor
class Sinh viên:
def __init __ (self): # phương thức khởi tạo
print ( 'Hàm tạo được gọi ra'
)
Bây giờ, bất cứ khi nào bạn tạo một đối tượng của lớp Student
, phương thức khởi tạo __init __ ()
sẽ được gọi, như được hiển thị bên dưới.
Ví dụ: Lệnh gọi hàm tạo khi tạo đối tượng
& gt; & gt; & gt; s1 = Student ()
Hàm tạo được gọi
& gt; & gt; & gt; s2 = Sinh viên ()
Hàm tạo được gọi
Hàm tạo trong Python được sử dụng để xác định các thuộc tính của một cá thể và gán giá trị cho chúng.
Thuộc tính phiên bản
Thuộc tính instance là các thuộc tính hoặc thuộc tính được gắn vào một thể hiện của một lớp. Các thuộc tính cá thể được định nghĩa trong phương thức khởi tạo.
Ví dụ sau xác định các thuộc tính cá thể name
và age
trong hàm tạo.
Ví dụ: Thuộc tính đối tượng
class Sinh viên:
schoolName = 'XYZ School' # thuộc tính lớp
def __init __ (self): # constructor
self.name = '' # thuộc tính phiên bản
self.age = 0 # thuộc tính instance
Một thuộc tính phiên bản có thể được truy cập bằng cách sử dụng ký hiệu dấu chấm: [tên phiên bản]. [Tên thuộc tính]
, như được hiển thị bên dưới.
Ví dụ:
& gt; & gt; & gt; std = Sinh viên ()
& gt; & gt; & gt; std.name
''
& gt; & gt; & gt; std.age
0
Bạn có thể đặt giá trị của các thuộc tính bằng cách sử dụng ký hiệu dấu chấm, như hình dưới đây.
Ví dụ:
& gt; & gt; & gt; std = Sinh viên ()
& gt; & gt; & gt; std.name = "Bill" # gán giá trị cho thuộc tính instance
& gt; & gt; & gt; std.age = 25 # gán giá trị cho thuộc tính instance
& gt; & gt; & gt; std.name # truy cập giá trị thuộc tính phiên bản
Hóa đơn
& gt; & gt; & gt; std.age # truy cập giá trị vào thuộc tính phiên bản
25
Bạn có thể chỉ định giá trị của các thuộc tính cá thể thông qua hàm tạo.
Hàm tạo sau bao gồm các tham số tên và tuổi, ngoại trừ tham số self
.
Ví dụ: Đặt Giá trị Thuộc tính
class Sinh viên:
def __init __ (tự, tên, tuổi):
self.name = tên
self.age = tuổi
Bây giờ, bạn có thể chỉ định các giá trị trong khi tạo một thể hiện, như được hiển thị bên dưới.
Ví dụ: Truyền Giá trị Thuộc tính Phiên bản trong Khối mã lệnh
& gt; & gt; & gt; std = Student ('Bill', 25 tuổi)
& gt; & gt; & gt; std.name
'Hóa đơn'
& gt; & gt; & gt; std.age
25
Lưu ý:
Bạn không phải chỉ định giá trị của tham số self
. Nó sẽ được chỉ định nội bộ bằng Python.
Bạn cũng có thể đặt các giá trị mặc định cho các thuộc tính phiên bản. Đoạn mã sau đặt các giá trị mặc định của các tham số phương thức khởi tạo.
Vì vậy, nếu các giá trị không được cung cấp khi tạo một đối tượng, các giá trị sẽ được gán sau đó.
Ví dụ: Đặt Giá trị Mặc định của Thuộc tính
class Sinh viên:
def __init __ (bản thân, tên = "Khách"
, tuổi = 25)
self.name = tên
self.age = tuổi
Bây giờ, bạn có thể tạo một đối tượng với các giá trị mặc định, như hình dưới đây.
Ví dụ: Giá trị mặc định của thuộc tính đối tượng
& gt; & gt; & gt; std = Sinh viên ()
& gt; & gt; & gt; std.name
'Khách mời'
& gt; & gt; & gt; std.age
25
Hãy truy cập thuộc tính lớp so với thuộc tính phiên bản trong Python để biết thêm thông tin.
Thuộc tính lớp
Trong Python, một thuộc tính trong lớp có thể được xác định bằng cách sử dụng hàm property () .
Phương thức property ()
trong Python cung cấp một giao diện cho các thuộc tính cá thể.
Nó đóng gói các thuộc tính cá thể và cung cấp một thuộc tính, giống như Java và C #.
Phương thức property ()
nhận các phương thức get, set và delete làm đối số và trả về một đối tượng của lớp property
.
Ví dụ sau minh họa cách tạo một thuộc tính trong Python bằng cách sử dụng hàm property ()
.
Ví dụ: property ()
class Sinh viên:
def __init __ (bản thân):
bản thân .__ name = ''
def setname (tự, tên):
print ('setname () được gọi là')
bản thân .__ name = tên
def getname (self):
print ('getname () được gọi là')
trả về
tên tự .__
name = property (getname, setname)
Trong ví dụ trên, thuộc tính (getname, setname)
trả về đối tượng thuộc tính và gán nó cho name
.
Do đó, thuộc tính name
ẩn thuộc tính cá thể riêng __name
.
Thuộc tính name
được truy cập trực tiếp, nhưng bên trong nó sẽ gọi phương thức getname ()
hoặc setname ()
, như được hiển thị bên dưới.
Ví dụ: property ()
& gt; & gt; & gt; std = Sinh viên ()
& gt; & gt; & gt; std.name = "Steve"
setname () được gọi là
& gt; & gt; & gt; std.name
getname () được gọi là
'Steve'
Bạn nên sử dụng property decorator thay vì phương thức property ()
.
Phương thức Lớp
Bạn có thể xác định bao nhiêu phương thức tùy thích trong một lớp bằng cách sử dụng từ khóa def
.
Mỗi phương thức phải có tham số đầu tiên, thường được đặt tên là self
, tham chiếu đến phiên bản đang gọi.
Ví dụ: Phương pháp lớp
class Sinh viên:
def displayInfo (self): # phương thức lớp
print ('Thông tin Sinh viên')
Self
chỉ là một tên quy ước cho đối số đầu tiên của một phương thức trong lớp.
Phương thức được định nghĩa là mymethod (self, a, b)
nên được gọi là x.mymethod (a, b)
cho đối tượng x
of lớp.
Phương thức lớp ở trên có thể được gọi như một hàm bình thường, như được hiển thị bên dưới.
Ví dụ: Phương pháp lớp
& gt; & gt; & gt; std = Sinh viên ()
& gt; & gt; & gt; std.displayInfo ()
'Thông tin học sinh'
Tham số đầu tiên của phương thức không cần được đặt tên là self
. Bạn có thể đặt bất kỳ tên nào tham chiếu đến phiên bản của phương thức gọi.
Phương thức displayInfo ()
sau đặt tên cho tham số đầu tiên là obj
thay vì self
và hoạt động hoàn toàn tốt.
Ví dụ: Phương pháp lớp
class Sinh viên:
def displayInfo (obj): # class method
print ('Thông tin Sinh viên')
Việc xác định một phương thức trong lớp mà không có tham số self
sẽ tạo ra một ngoại lệ khi gọi một phương thức.
Ví dụ: Phương pháp lớp
class Sinh viên:
def displayInfo (): # phương thức không có tham số self
print ('Thông tin Sinh viên')
& gt; & gt; & gt; std = Sinh viên ()
& gt; & gt; & gt; std.displayInfo ()
Traceback (cuộc gọi gần đây nhất cuối cùng):
std.displayInfo ()
TypeError: displayInfo () nhận 0 đối số vị trí nhưng 1 đối số được đưa ra
Phương thức có thể truy cập các thuộc tính cá thể bằng cách sử dụng tham số self
.
Ví dụ: Phương pháp lớp
class Sinh viên:
def __init __ (tự, tên, tuổi):
self.name = tên
self.age = tuổi
def displayInfo (self): # phương thức lớp
print ('Tên sinh viên:', self.name, ', Tuổi:', self.age)
Bây giờ bạn có thể gọi phương thức, như được hiển thị bên dưới.
Ví dụ: Gọi một phương thức
& gt; & gt; & gt; std = Student ('Steve', 25 tuổi)
& gt; & gt; & gt; std.displayInfo ()
Tên sinh viên: Steve, Tuổi: 25
Xóa thuộc tính, đối tượng, lớp
Bạn có thể xóa các thuộc tính, đối tượng hoặc chính lớp đó bằng cách sử dụng từ khóa del
, như được hiển thị bên dưới.
Ví dụ: Xóa thuộc tính, đối tượng, lớp
& gt; & gt; & gt; std = Student ('Steve', 25 tuổi)
& gt; & gt; & gt; del std.name # xóa thuộc tính
& gt; & gt; & gt; std.name
Traceback (cuộc gọi gần đây nhất cuối cùng):
Tệp "& lt; pyshell # 42 & gt;", dòng 1, trong & lt; mô-đun & gt;
std.name
AttributeError: Đối tượng 'Student' không có thuộc tính 'name'
& gt; & gt; & gt; del std # xóa đối tượng
& gt; & gt; & gt; std.name
Traceback (cuộc gọi gần đây nhất cuối cùng):
Tệp "& lt; pyshell # 42 & gt;", dòng 1, trong & lt; mô-đun & gt;
std.name
NameError: tên 'std' không được xác định
& gt; & gt; & gt; xóa học sinh # xóa lớp học
& gt; & gt; & gt; std = Student ('Steve', 25 tuổi)
Traceback (cuộc gọi gần đây nhất cuối cùng):
Tệp "& lt; pyshell # 42 & gt;", dòng 1, trong & lt; mô-đun & gt;
std = Sinh viên ()
NameError: tên 'Sinh viên' không được xác định
Xem thêm những thông tin liên quan đến chủ đề cách xác định một lớp trong python
How to: Plot a Function in Python
- Tác giả: HagesLab
- Ngày đăng: 2021-02-04
- Đánh giá: 4 ⭐ ( 5621 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Learn how to define a function and plot it in Python.
Script can be found here: https://www.hageslab.com/python.html
Here we are using “Spyder” IDE with the numpy and matplotlib libraries
Useful resources:
https://matplotlib.org/tutorials/text/mathtext.html
https://matplotlib.org/
https://matplotlib.org/3.3.3/api/_as_gen/matplotlib.pyplot.plot.htmlmatplotlib.pyplot.plotScript:
import numpy as np
import matplotlib.pyplot as pltdef f(x,a,b,c):
return a*x**2+b*x+cxlist = np.linspace(-10,10,num=1000)
xlist = np.arange(-10,10.1,.1)a=5
b=1
c=4
ylist = f(xlist,a,b,c)plt.figure(num=0,dpi=120)
plt.plot(xlist,ylist,label=”f(x)”)
plt.plot(xlist,ylist**(1/2),’–g’,label=r”f(x)$^{0.5}$”)
plt.title(“Plotting Example”)
plt.xlabel(“Distance / ft”)
plt.ylabel(“Height / ft”)
plt.legend()
Làm cách nào để thiết kế một lớp trong Python?
- Tác giả: qastack.vn
- Đánh giá: 4 ⭐ ( 3477 lượt đánh giá )
- Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Cách thiết kế một lớp học. Viết những từ ngữ xuống. Bạn bắt đầu làm điều…
Lớp trong Python
- Tác giả: viblo.asia
- Đánh giá: 4 ⭐ ( 2455 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Hôm ni, mình học tiếp về bạn “Lớp(class) trong python”, bài blog tiếp theo nằm trong series “Khám phá Đại Bản Doanh Python”(nội dung trong bài series này từ chủ yếu mình lấy từ python.org rồi viết lại…
Chi tiết bài học 13.Python OOP
- Tác giả: vimentor.com
- Đánh giá: 5 ⭐ ( 1823 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Vimentor chi tiết bài học Python OOP: Lớp, Đối tượng, thừa kế và hàm khởi tạo với ví dụ
Python: Các hàm toán học trong Python
- Tác giả: www.v1study.com
- Đánh giá: 3 ⭐ ( 6944 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Trong Python, một số phép toán toán học có thể được thực hiện một cách dễ dàng bằng cách import một mô-đun có tên là math để xác định các hàm khác nhau g
LỚP VÀ ĐỐI TƯỢNG TRONG PYTHON –
- Tác giả: vnpro.vn
- Đánh giá: 5 ⭐ ( 7710 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Lớp và đối tượng trong Python
- Tác giả: yeulaptrinh.vn
- Đánh giá: 5 ⭐ ( 5591 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Lớp và đối tượng là hai khía cạnh chính trong lập trình hướng đối tượng. Một lớp là một khuôn mẫu mà từ đó các đối tượng riêng lẻ được tạo ra.
Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình