<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>Tìm hiểu Class và Object trong Python</title>
<meta name="description" content="Tìm hiểu Class và Object trong Python - Savefile - Tin Tức -...">
<meta name="author" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :.">
<meta name="copyright" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :. [admin@nguoicodonvn2008.info]">
<meta name="robots" content="index, archive, follow, noodp">
<meta name="googlebot" content="index,archive,follow,noodp">
<meta name="msnbot" content="all,index,follow">
<meta name="generator" content="NukeViet v4.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Tìm hiểu Class và Object trong Python">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;tim-hieu-class-va-object-trong-python-11113.html">
<meta property="og:site_name" content=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.">
<meta property="og:url" content="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/tim-hieu-class-va-object-trong-python-11113.html">
<link rel="shortcut icon" href="https://www.nguoicodonvn2008.info/favicon.ico">
<link rel="canonical" href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/tim-hieu-class-va-object-trong-python-11113.html">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/karaoke-dual/" title="Tin Tức - Karaoke Dual" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/nhac-tre/" title="Tin Tức - Nhạc trẻ" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tru-tinh/" title="Tin Tức - Trữ tình" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/nuoc-ngoai/" title="Tin Tức - Nước ngoài" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/remix/" title="Tin Tức - Remix" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tam-su-tinh-yeu/" title="Tin Tức - Tâm sự tình yêu" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tho-suu-tam/" title="Tin Tức - Thơ sưu tầm" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/cuoc-song/" title="Tin Tức - Cuộc sống" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/phan-mem/" title="Tin Tức - Phần mềm" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/kien-thuc-may-tinh/" title="Tin Tức - Kiến thức máy tính" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/hoc-tap/" title="Tin Tức - Học tập" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tai-lieu/" title="Tin Tức - Tài liệu" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/de-thi/" title="Tin Tức - Đề thi" type="application/rss+xml">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/bootstrap.min.js" type="text/javascript">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/style.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://www.nguoicodonvn2008.info/themes/default/css/news.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/custom.css">
<style type="text/css">
	body{background: #fff;}
</style>
    </head>
    <body>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">.&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.</h2>
		<p class="pull-right"><a title=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;." href="https://www.nguoicodonvn2008.info/">https://www.nguoicodonvn2008.info</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Tìm hiểu Class và Object trong Python</h1>
		<ul class="list-inline">
			<li>Thứ ba - 09/09/2025 23:19</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
		</div>
				<div class="imghome">
			<img alt="Tìm hiểu Class và Object trong Python" src="https://st.quantrimang.com/photos/image/2018/11/30/class-object-1.jpg" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<p style="text-align: justify;"><strong>Class trong Python là gì? Bên cạnh class Python, object cũng là khái niệm bạn nên biết.</strong>&nbsp;Dưới đây là những điều bạn cần biết về class &amp; object trong Python.</p>

<div style="text-align: justify;">&nbsp;</div>

<p style="text-align: justify;">Class trong Python tạo thành xương sống của lập trình hướng đối tượng, cho phép bạn đóng gói dữ liệu và hành vi vào một thực thể duy nhất. Khi làm việc với class Python, bạn định nghĩa các thuộc tính để lưu trữ dữ liệu và các phương thức để thực hiện hành động cụ thể. Cấu trúc này cho phép bạn mô hình hóa các đối tượng trong thế giới thực và tạo ra mã có tổ chức, có thể tái sử dụng.</p>

<p style="text-align: justify;">Class trong Python đóng vai trò như một bản thiết kế để tạo đối tượng, tức là các thể hiện của lớp. Bạn sử dụng class khi cần đóng gói dữ liệu và các hàm liên qun. Bằng cách định nghĩa class, bạn có thể tạo nhiều đối tượng chia sẻ cùng các thuộc tính và phương thức, đồng thời duy trì trạng thái riêng biệt của chúng.</p>

<p style="text-align: justify;">Trong hướng dẫn này, bạn sẽ học cách định nghĩa và sử dụng class Python, hiểu sự khác biệt giữa lớp và đối tượng, cũng như khám phá các phương thức và thuộc tính cần thiết để sử dụng chúng.</p>

<p style="text-align: justify;">Class là một blueprint hay nguyên mẫu do người dùng định nghĩa từ đối tượng được tạo. Class cung cấp các phương tiện kết hợp dữ liệu và chức năng với nhau. Tạo class mới đồng nghĩa tạo một kiểu đối tượng mới, cho phép phiên bản mới của kiểu đó được tạo. Mỗi phiên bản class có thuộc tính đi kèm để duy trì trạng thái của nó. Các phiên bản class cũng có những phương thức (được định nghĩa bằng class) để chỉnh sửa trạng thái của chúng.</p>

<p style="text-align: justify;">Để hiểu nhu cầu tạo class và đối tượng trong Python, hãy cùng nhau xem xét ví dụ cụ thể bên dưới sau khi nắm được cú pháp và cách dùng cơ bản.</p>

<div style="text-align: justify;">&nbsp;</div>

<p style="text-align: justify;">Python&nbsp;là một ngôn ngữ lập trình hướng đối tượng. Không giống như lập trình hướng thủ tục nhấn mạnh vào các hàm, lập trình hướng đối tượng tập trung làm việc trên các đối tượng.</p>

<p style="text-align: justify;"><strong>Đối tượng (Object)</strong>&nbsp;chỉ đơn giản là một tập hợp các dữ liệu (các biến) và các phương thức (các hàm) hoạt động trên các dữ liệu đó. Và,&nbsp;<strong>lớp (class)</strong>&nbsp;là một kế hoạch chi tiết cho đối tượng.</p>

<p style="text-align: justify;">Chúng ta có thể nghĩ về class như một bản phác thảo (nguyên mẫu) của một ngôi nhà. Nó chứa tất cả các chi tiết về sàn nhà, cửa ra vào, cửa sổ,... Dựa trên những mô tả này, chúng ta sẽ xây dựng những ngôi nhà. Vậy nhà ở đây chính là đối tượng.</p>

<p style="text-align: justify;"><img alt="" data-adbro-processed="true" data-i="0" data-src="https://st.quantrimang.com/photos/image/2018/11/30/class-object-1.jpg" data-was-processed="true" height="367" src="https://st.quantrimang.com/photos/image/2018/11/30/class-object-1.jpg" width="650" /></p>

<p style="text-align: justify;">Vì nhiều ngôi nhà có thể được làm từ một mô tả nên chúng ta có thể tạo ra nhiều vật thể từ một lớp. Một đối tượng cũng được gọi là một thể hiện (instance) của một lớp và quá trình tạo đối tượng này được gọi là instantiation.</p>

<p style="text-align: justify;">Xem thêm:&nbsp;<a href="https://quantrimang.com/cong-nghe/phan-biet-class-object-instance-156483" title="Tìm hiểu về Class, Object và Instance trong lập trình hướng đối tượng">Tìm hiểu về Class, Object và Instance trong lập trình hướng đối tượng</a></p>

<h2 style="text-align: justify;">Những điều cần biết về class và object trong Python</h2>

<ul>
	<li style="text-align: justify;"><a href="https://quantrimang.com/hoc/tim-hieu-class-va-object-trong-python-160242#mcetoc_1it9qrbkc2e">Khai báo Class</a></li>
	<li style="text-align: justify;"><a href="https://quantrimang.com/hoc/tim-hieu-class-va-object-trong-python-160242#mcetoc_1it9qrbkc2f">Tạo đối tượng trong Python</a></li>
	<li style="text-align: justify;"><a href="https://quantrimang.com/hoc/tim-hieu-class-va-object-trong-python-160242#mcetoc_1it9qrbkc2g">Constructor trong Python</a></li>
	<li style="text-align: justify;"><a href="https://quantrimang.com/hoc/tim-hieu-class-va-object-trong-python-160242#mcetoc_1it9qrbkc2h">Xóa bỏ thuộc tính và đối tượng</a></li>
	<li style="text-align: justify;"><a href="https://quantrimang.com/hoc/tim-hieu-class-va-object-trong-python-160242#mcetoc_1it9qrbkc2i">Các phương thức đối tượng</a></li>
	<li style="text-align: justify;"><a href="https://quantrimang.com/hoc/tim-hieu-class-va-object-trong-python-160242#mcetoc_1it9qrbkc2j">Tham số self</a></li>
</ul>

<h2 id="mcetoc_1it9qrbkc2e" style="text-align: justify;">Khai báo Class</h2>

<p style="text-align: justify;">Giống như khai báo các hàm bắt đầu bằng một từ khóa là&nbsp;<em>def</em>&nbsp;thì khai báo lớp trong Python sử dụng từ khóa class.</p>

<p style="text-align: justify;">Dòng kí tự đầu tiên được gọi là&nbsp;<em>docstring</em>&nbsp;- một mô tả ngắn gọn về lớp.&nbsp;<em>Docstring</em>&nbsp;này không bắt buộc nhưng khuyến khích sử dụng.</p>

<pre id="pre0" style="text-align: justify;">
class MyNewClass:
     &#039;&#039;&#039;Đây là docstring. Một lớp mới vừa được khai báo.&#039;&#039;&#039;
     pass</pre>

<div style="text-align: justify;">&nbsp;</div>

<p style="text-align: justify;">Đây là cách khai báo class đơn giản.</p>

<p style="text-align: justify;">Class tạo ra một local namespace mới trở thành nơi để các thuộc tính của nó được khai báo. Thuộc tính có thể là hàm hoặc dữ liệu.</p>

<p style="text-align: justify;">Ngoài ra còn có các thuộc tính đặc biệt bắt đầu với dấu gạch dưới kép (__). Ví dụ:&nbsp;<em>__doc__</em>&nbsp;sẽ trả về chuỗi docstring mô tả của lớp đó.</p>

<p style="text-align: justify;">Ngay khi khai báo một lớp, môt đối tượng trong lớp mới sẽ được tạo ra với cùng một tên. Đối tượng lớp này cho phép chúng ta truy cập các thuộc tính khác nhau cũng như để khởi tạo các đối tượng mới của lớp đó.</p>

<pre id="pre1" style="text-align: justify;">
class MyClass:
     &quot;Đây là class thứ 2 được khởi tạo&quot;
     a = 10
     def func(self):
        print(&#039;Xin chào&#039;)

# Output: 10
print(MyClass.a)

# Output: &lt;function MyClass.func at 0x0000000003079BF8&gt;
print(MyClass.func)

# Output: &#039;Đây là class thứ 2 được khởi tạo&#039;
print(MyClass.__doc__)</pre>

<p style="text-align: justify;">Sau khi chạy chương trình, kết quả được trả về là:</p>

<pre id="pre2">
<code>10
&lt;function MyClass.func at 0x7fe90f834400&gt;
Đây là class thứ 2 được khởi tạo</code></pre>

<h2 id="mcetoc_1it9qrbkc2f" style="text-align: justify;">Tạo đối tượng trong Python</h2>

<p style="text-align: justify;">Như đã nói ở các bài học trước, đối tượng trong class có thể được sử dụng để truy cập các thuộc tính khác nhau và tạo các instance mới của lớp đó. Thủ tục để tạo một đối tượng tương tự như cách chúng ta gọi hàm.</p>

<pre id="pre3" style="text-align: justify;">
ob = MyClass()</pre>

<p style="text-align: justify;">Lệnh này đã tạo ra một đối tượng mới có tên là&nbsp;<em>ob.</em></p>

<p style="text-align: justify;">Một ví dụ kĩ hơn về tạo đối tượng bao gồm cả các thuộc tính, phương thức:</p>

<pre id="pre4" style="text-align: justify;">
class MyClass: 
     &quot;Đây là class thứ 3 được khởi tạo&quot; 
     a = 10 
     def func(self): 
        print(&#039;Xin chào&#039;)

ob = MyClass()

# Output: &lt;function MyClass.func at 0x000000000335B0D0&gt;
print(MyClass.func)

# Output: &lt;bound method MyClass.func of &lt;__main__.MyClass object at 0x000000000332DEF0&gt;&gt;
print(ob.func)

# Gọi hàm func()
# Output: Xin chào
ob.func()</pre>

<p style="text-align: justify;">Bạn có thể thấy rằng khi định nghĩa hàm trong class, ta có parameter là&nbsp;<em>self,</em>&nbsp;nhưng khi gọi hàm&nbsp;<em>obj.func()</em>&nbsp;không cần parameter, vẫn không gặp lỗi. Bởi vì, bất cứ khi nào, object gọi các phương thức, object sẽ tự pass qua parameter đầu tiên. Nghĩa là&nbsp;<em>obj.func()</em>&nbsp;tương đương với&nbsp;<em>MyClass.func(obj)</em></p>

<p style="text-align: justify;">Một đối tượng là một phiên bản của class. Một class giống như một blueprint , còn phiên bản là bản sao của class với những giá trị thực tế. Nó không còn là ý tưởng. Ví dụ, nó là một con chó thực sự, giống chó Pug 7 tuổi. Bạn có thể có nhiều con chó để tạo nhiều phiên bản khác nhau, nhưng nếu không có class làm hướng dẫn, bạn sẽ bị lạc, không biết thông tin nào được yêu cầu.</p>

<p style="text-align: justify;">Một đối tượng thường bao gồm:</p>

<ul>
	<li style="text-align: justify;">State được đại diện bởi các thuộc tính của một đối tượng. Nó cũng phản ánh các thuộc tính của một đối tượng.</li>
	<li style="text-align: justify;">Behavior được đại diện bởi những phương thức của một đối tượng. Nó cũng thể hiện phản hồi của một đối tượng cho đối tượng khác.</li>
	<li style="text-align: justify;">Identity đặt một tên độc đáo cho một đối tượng và cho phép một đối tượng tương tác với đối tượng khác.</li>
</ul>

<div style="text-align: justify;">&nbsp;</div>

<h2 id="mcetoc_1it9qrbkc2g" style="text-align: justify;">Constructor trong Python</h2>

<p style="text-align: justify;">Hàm trong Class được bắt đầu với dấu gạch dưới kép (__) là các hàm đặc biệt, mang các ý nghĩa đặc biệt.</p>

<p style="text-align: justify;">Một trong đó là hàm&nbsp;<em>__init__().</em>&nbsp;Hàm này được gọi bất cứ khi nào khởi tạo một đối tượng, một biến mới trong class và được gọi là constructor trong lập trình hướng đối tượng.</p>

<pre id="pre5" style="text-align: justify;">
class SoPhuc:

     def __init__(self,r = 0,i = 0):
        self.phanthuc = r
        self.phanao = i

     def getData(self):
        print(&quot;{}+{}j&quot;.format(self.phanthuc,self.phanao))

# Tạo đối tượng số phức mới
c1 = SoPhuc(2,3)

# Gọi hàm getData()
# Output: 2+3j
c1.getData()

# Tạo đối tượng số phức mới
# tạo thêm một thuộc tính mới (new)
c2 = SoPhuc(5)
c2.new = 10

# Output: (5, 0, 10)
print((c2.phanthuc, c2.phanao, c2.new))
# Đối tượng c1 không có thuộc tính &#039;new&#039;
# AttributeError: &#039;SoPhuc&#039; object has no attribute &#039;new&#039;
c1.new</pre>

<p style="text-align: justify;">Trong ví dụ trên, chúng ta khai báo một lớp mới để biểu diễn các số phức. Nó có hai hàm,&nbsp;<em>__init</em>&nbsp;__() để khởi tạo các biến (mặc định là 0) và&nbsp;<em>getData()</em>&nbsp;để hiển thị đúng số.</p>

<p style="text-align: justify;">Lưu ý rằng các thuộc tính thêm vào của đối tượng có thể được tạo ra một cách nhanh chóng, như ở ví dụ trên là ta đã tạo một thuộc tính mới&nbsp;<em>‘new’</em>&nbsp;cho đối tượng&nbsp;<em>c2</em>&nbsp;và có thể gọi ra ngay lập tức. Tuy nhiên thuộc tính mới này sẽ không áp dụng với các đối tượng đã khai báo trước như&nbsp;<em>c1.</em></p>

<h2 id="mcetoc_1it9qrbkc2h" style="text-align: justify;">Xóa bỏ thuộc tính và đối tượng</h2>

<p style="text-align: justify;">Thuộc tính của đối tượng có thể bị xóa bằng lệnh&nbsp;<em>del.</em></p>

<pre id="pre6" style="text-align: justify;">
&gt;&gt;&gt; c1 = SoPhuc(2,3)
&gt;&gt;&gt; del c1.phanao
&gt;&gt;&gt; c1.getData()
Traceback (most recent call last):
...
AttributeError: &#039;SoPhuc&#039; object has no attribute &#039;phanao&#039;

&gt;&gt;&gt; del SoPhuc.getData
&gt;&gt;&gt; c1.getData()
Traceback (most recent call last):
...
AttributeError: &#039;SoPhuc&#039; object has no attribute &#039;getData&#039;</pre>

<p style="text-align: justify;">Thậm chí bạn có thể xóa chính đối tượng đó bằng cách sử dụng câu lệnh&nbsp;<em>del.</em></p>

<pre id="pre7" style="text-align: justify;">
&gt;&gt;&gt; c1 = SoPhuc(1,3)
&gt;&gt;&gt; del c1
&gt;&gt;&gt; c1
Traceback (most recent call last):
...
NameError: name &#039;c1&#039; is not defined</pre>

<p style="text-align: justify;">Sau khi bị xóa, object vẫn tồn tại trên bộ nhớ, nhưng sau đó phương thức destruction của Python (hay còn gọi là garbage collection) sẽ loại bỏ hoàn toàn các dữ liệu này trên bộ nhớ.</p>

<h2 id="mcetoc_1it9qrbkc2i" style="text-align: justify;">Các phương thức đối tượng</h2>

<p style="text-align: justify;">Đối tượng cũng có thể chứa các phương thức - method. Phương thức trong đối tượng là các hàm thuộc về đối tượng đó.</p>

<p style="text-align: justify;">Ví dụ tạo một phương thức trong class Person bằng cách chèn một hàm hiện lời chào mừng và triển khai nó ở đối tượng p1:</p>

<pre id="pre8" style="text-align: justify;">
class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

  def myfunc(self):
    print(&quot;Xin chào, tên tôi là&quot; + self.name)

p1 = Person(&quot;Quantrimang.com&quot;, 16)
p1.myfunc()
</pre>

<h2 id="mcetoc_1it9qrbkc2j" style="text-align: justify;">Tham số self</h2>

<p style="text-align: justify;">Tham số self là một tham chiếu tới phiên bản hiện tại của class. Nó thường được dùng để truy cập các biến thuộc về class đó.</p>

<p style="text-align: justify;">Không nhất thiết phải đặt tên nó là self. Bạn có thể gọi nó bất cứ khi nào muốn nhưng nó phải là tham số đầu tiên của hàm bất kỳ trong class.</p>

<p style="text-align: justify;">Ví dụ: Dùng từ mysillyobject và abc thay cho self:</p>

<pre id="pre9" style="text-align: justify;">
class Person:
  def __init__(mysillyobject, name, age):
    mysillyobject.name = name
    mysillyobject.age = age

  def myfunc(abc):
    print(&quot;Xin chào, tên tôi là &quot; + abc.name)

p1 = Person(&quot;Quantrimang.com&quot;, 16)
p1.myfunc()
</pre>

<h2 style="text-align: justify;">Biến lớp và biến phiên bản trong Python</h2>

<p style="text-align: justify;">Trong Python, các biến được định nghĩa trong một lớp có thể là biến lớp hoặc biến thể hiện và việc hiểu được sự khác biệt giữa chúng là rất quan trọng đối với lập trình hướng đối tượng.</p>

<h3 style="text-align: justify;">Biến lớp</h3>

<p style="text-align: justify;">Đây là các biến được chia sẻ trên tất cả phiên bản của một lớp. Biến được định nghĩa ở cấp lớp, bên ngoài bất kỳ phương thức nào. Tất cả các đối tượng của lớp chia sẻ cùng một giá trị cho một biến lớp trừ khi được ghi đè rõ ràng trong một đối tượng.</p>

<h3 style="text-align: justify;">Biến phiên bản</h3>

<p style="text-align: justify;">Các biến duy nhất cho mỗi phiên bản (đối tượng) của một lớp. Các biến này được định nghĩa trong phương thức __init__ hoặc các phương thức thể hiện khác. Mỗi đối tượng duy trì bản sao riêng của các biến phiên bản, độc lập với các đối tượng khác.</p>

<p style="text-align: justify;">Ví dụ:</p>

<pre id="pre10" style="text-align: justify;">
class Dog:
    # Biến class
    species = &quot;Canine&quot;

    def __init__(self, name, age):
        # Biến phiên bản
        self.name = name
        self.age = age

# Tạo đối tượng
dog1 = Dog(&quot;Buddy&quot;, 3)
dog2 = Dog(&quot;Charlie&quot;, 5)

# Truy cập class và biến phiên bản
print(dog1.species)  # (Class variable)
print(dog1.name)     # (Instance variable)
print(dog2.name)     # (Instance variable)

# Chỉnh sửa các biến phiên bản
dog1.name = &quot;Max&quot;
print(dog1.name)     # (Updated instance variable)

# Chỉnh sửa biến class
Dog.species = &quot;Feline&quot;
print(dog1.species)  # (Updated class variable)
print(dog2.species)</pre>

<p style="text-align: justify;">Kết quả:</p>

<pre id="pre11" style="text-align: justify;">
Canine
Buddy
Charlie
Max
Feline
Feline</pre>

<p style="text-align: justify;">Bài viết hôm nay đã cung cấp cho bạn các kiến thức cơ bản về Class và Object rồi đấy. Để tiếp tục chủ đề về Lập trình hướng đối tượng trong Python, bài sau Quantrimang sẽ cùng bạn tìm hiểu về Kế thừa và Đa kế thừa. Mời bạn đọc theo dõi.</p>

<div style="text-align: justify;">&nbsp;</div>
		</div>
				<div id="author">
						<p>
				<strong>Nguồn tin:</strong>
				Quantrimang.com:
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/tim-hieu-class-va-object-trong-python-11113.html" title="Tìm hiểu Class và Object trong Python">https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/tim-hieu-class-va-object-trong-python-11113.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; .&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.
		</div>
		<div id="contact">
			<a href="mailto:admin@nguoicodonvn2008.info">admin@nguoicodonvn2008.info</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://www.nguoicodonvn2008.info/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
		</script>
		<div class="car-top">
  <span><img src="https://www.nguoicodonvn2008.info/themes/default/images/car.png" alt=""></span>
</div>
<script src="https://www.nguoicodonvn2008.info/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="nv4c_e856T",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://www.nguoicodonvn2008.info/assets/js/language/vi.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/global.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/site.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/news.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/main.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/custom.js"></script>
<script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "url": "https://www.nguoicodonvn2008.info",
            "logo": "https://www.nguoicodonvn2008.info/uploads/angel.gif"
        }
        </script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/bootstrap.min.js"></script>
<script type="text/javascript">
var $scrolltop = $('.car-top');
$scrolltop.on('click', function () {
    $('html,body').animate({
        scrollTop: 0
    }, 800);
    $(this).addClass("car-run");
    setTimeout(function(){ $scrolltop.removeClass('car-run');}, 1000);
    return false;
});
$(window).on('scroll', function ()
{ 
    if($(window).scrollTop() >= 200)
    {
        $scrolltop.addClass("show");
        $scrolltop.addClass("car-down");
    }
    else
    {
       $scrolltop.removeClass("show");
       setTimeout(function(){ $scrolltop.removeClass('car-down');}, 300);
    }
});
</script>
</body>
</html>