Dấu chấm trong py dùng để làm gì?

Em là người mới, đang tìm hiểu về py. Có một thứ em vẫn luôn thắc mắc là dấu (.) trong py có thể làm những gì.
Như VD dưới đây:
Label().place()
Ai đó giải đáp giúp em với ạ. Em cảm ơn.

2 Likes

Không để làm gì cả, giống như bạn nói một câu cứ chêm vào chữ đ.m vậy đó. Hoặc cứ à, ừ,… như một thói quen khó bỏ vậy đó.

Ông nghĩ ra Python cũng vậy, ổng thấy chỗ đó nếu không thêm dấu chấm vô trông có vẻ không được đẹp nên đã thêm :smiley:

4 Likes

Cái này để gọi 1 function, class, var hay bất kì thứ gì từ class hoặc module mẹ. Như thế này:

Mom.son

Trong ví dụ trên, ta gọi biến son từ class Mom. Chỉ vậy thôi.

5 Likes

Dấu chấm là để truy cập thuộc tính của một đối tượng em ạ.
Như Label().place() thì anh đoán Label() là một class (loại đối tượng) khi em chạy Label() nó sẽ trả về một đối tượng mới thuộc loại Label, và trong định nghĩa Label đó có method place (method tương tự như hàm function nhưng nó thực hiện trên một đối tượng cụ thể).
Ở đây method place có thể trả lại vị trí của đối tượng Label mới được tạo.
Và Label().place() có thể viết thế này:

new_label = Label()
new_label_place = new_label.place()

Chúc em thành công với Python.

5 Likes

hình như gọi là toán tử (dot operator), thấy có thằng php thì nó sử dụng -> còn các ngôn ngữ khác đều dùng dấu . thì phải

2 Likes

PHP học theo Perl, dấu chấm dùng để nối chuỗi là chủ yếu, còn trường hợp khác mình không nhớ.

Còn trong Python thì dấu chấm được dùng với vài ý nghĩa khác nhau tùy trường hợp cụ thể.

Trường hợp ở chủ đề này dường như là phần sau dấu chấm là để chỉ method hoặc property như trong các ngôn ngữ có hỗ trợ hướng đối tượng khác.

Mấy đại ca hay hỏi mấy câu vớ vẩn theo mình là lười đọc tài liệu chứ không phải lý do gì hết. Để làm quen với bất cứ ngôn ngữ lập trình nào, mình vẫn là dân ngoại đạo nhưng luôn luôn đọc hết 3 cuốn sách rồi mới đi hỏi này nọ. Đừng kiểu không nắm gì hết, đi hỏi linh ta linh tinh, ở địa phương mình sinh sống, người ta dùng từ “thằng ho lao” để chỉ những đối tượng kiểu này <= cảm thấy nhục mặt cứ như phạm tội hiếp dâm trẻ em vậy đó.

6 Likes

Cảm ơn câu trả lời của bạn và cảm ơn câu hỏi của tác giả. Thật sự mình mới học, không biết dấu chấm nó tác dụng gì! Như hình mình gửi, mình không biết sao một hàm bên ngoài class lại gọi được biến bên trong class trong hàm khác:
Hình đây

1 Like

Bạn cứ coi dấu chấm như một chiếc chìa khóa giúp truy cập vào bên trong các đối tượng.
Dữ liệu và chức năng của một đối tượng thường được “đóng gói” lại với nhau trong các thiết kế
class.

Tương tác chính là lý do để truy cập vào biến hay phương thức trong đối tượng.
Ta dùng cần dấu . để truy cập vào các dự liệu và chức năng của đối tượng để tương tác với nó.

4 Likes

Cảm ơn bạn đã trả lời cho mình. Sau khi hỏi hôm kia thì mình cũng tìm người khác hỏi và nhận được câu trả lời là country không phải là biến mà là 1 class do đó có thể gọi hàm trong class. Ban đầu mình cứ nghĩ country đó là biến chứa số chữ string bên ngoài, sao gọi được hàm trong class khác, sau mới biết nó là class không phải biến. Cảm ơn bạn đã giải thích về dấu chấm nói chung giúp mình. Tặng bạn 1 tim.

2 Likes

country ko phải là class, mà là tham số (parameter) của hàm (function) aboutCountry

tham số country 2 lần được truyền giá trị là các đối tượng (object) vn và jp của lớp (class) Vietnam và Japan.

Có vẻ bạn vẫn mơ hồ về những khái niệm này.
Nên tìm hiểu kỹ về OOP, hàm

Code của bạn có thể viết lại thế này

class Country:
    def __init__(self, name, capital, language):
        self.name = name
        self.capital = capital
        self.language = language
    def show_capital(self):
        print("capital:", self.capital)
    def show_language(self):
        print("language:", self.language)
    
    def aboutCountry(self):
        print("abbout", self.name)
        self.show_capital()
        self.show_language()
        
    
vn = Country("Vietnam", "Hanoi", "Vietnamese")
jp = Country("Japan", "Tokyo", "Japanese")

vn.aboutCountry()
jp.aboutCountry()
2 Likes

Ví dụ:

tran_giang = "trần văn giang"
tran_giang.eatcom() <--- kêu ông Tran Van Giang này đi ăn cơm, hàm eatcom() có tác dụng thi hành viêc "ăn cơm"

Để giải đáp cho cái bạn, thì bạn lên google để search “python function vs method” rồi từ từ đọc

Bạn mới học, đã chọn python, những cái rất căn bản còn chưa biết thì thôi đừng đụng vô OOP, mà cứ code theo functional từ trên xuống dưới đi.

Có được một số kiến thức rồi thì hãy vô OOP, sẽ đỡ bị rối hơn

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?