Kteam Q&A Community

Cộng đồng hỏi đáp về các vấn đề trong lập trình, công nghệ thông tin.

0

[ Câu hỏi về Python ] : Không hiểu về đoạn mã trong Class

import datetime


class MessageUser():
    user_details = []
    messages = []
    base_message = """Hi {name}! 

Thank you for the purchase on {date}. 
We hope you are exicted about using it. Just as a
reminder the purcase total was ${total}.
Have a great one!

Team CFE
"""
    def add_user(self, name, amount, email=None):
        name = name[0].upper() + name[1:].lower() 
        amount = "%.2f" %(amount)
        detail = {
            "name": name,
            "amount": amount,
        } 
        today = datetime.date.today()
        date_text = '{today.month}/{today.day}/{today.year}'.format(today=today)
        detail['date'] = date_text
        if email is not None: # if email != None
            detail["email"] = email
        self.user_details.append(detail)
    def get_details(self):
        return self.user_details
    def make_messages(self):
        if len(self.user_details) > 0:
            for detail in self.get_details():
                name = detail["name"]
                amount = detail["amount"]
                date = detail["date"]
                message = self.base_message
                new_msg = message.format(
                    name=name,
                    date=date,
                    total=amount
                )
                self.messages.append(new_msg)
            return self.messages
        return []

Lới đầu tiên , em xin chúc các anh chị trong Howkteam được  mạnh khỏe ,vui vẻ và cộng động sẽ ngày càng phát triển .

Em có thắc mắc xíu về 1 đoạn mã trong Python . Từ đầu đoạn mã em còn hiểu được , nhưng tới khúc message = self.base_message . Em không hiểu được đoạn self.base_message là gì ? , để làm gì ?  . Mong các anh chị giải thích cho em . Em xin cảm ơn !

VirusLove_7x đã bình luận 2017-05-09 20:27:34

base_message là một biến của class MessageUser cho nên khi thao tác với nó ta cần chữ self ở trước nếu không sẽ báo lỗi missing argument vì self là argument để nó định hướng đối tượng do đó nó không hiểu nó đang thao tác với base_message nào.
sau khi gán với message nó sẽ format. Hàm format ở đây nó sẽ thay thế các dữ liệu còn thiếu mà cái base_message còn thiếu như là name, date, total.
Cuối cùng nó đã make xong cái message. Việc của nó là add nó vào list message bằng append
Đơn giản mà. Còn nếu bạn thấy vẫn còn gì đó chưa hiểu bạn có thể reply. Mình sẽ giải thích thêm

1 bình chọn

1 câu trả lời Thêm câu trả lời

4
VirusLove_7x đã trả lời 2017-05-09 20:28:25

base_message là một biến của class MessageUser cho nên khi thao tác với nó ta cần chữ self ở trước nếu không sẽ báo lỗi missing argument vì self là argument để nó định hướng đối tượng do đó nó không hiểu nó đang thao tác với base_message nào.
sau khi gán với message nó sẽ format. Hàm format ở đây nó sẽ thay thế các dữ liệu còn thiếu mà cái base_message còn thiếu như là name, date, total.
Cuối cùng nó đã make xong cái message. Việc của nó là add nó vào list message bằng append
Đơn giản mà. Còn nếu bạn thấy vẫn còn gì đó chưa hiểu bạn có thể reply. Mình sẽ giải thích thêm

Trúc Lê đã bình luận 2017-05-10 15:11:08

Cảm ơn anh !

0 bình chọn

Câu trả lời của bạn

Bạn có thể trả lời câu hỏi này? Hãy chia sẻ nó cho mọi người.

Hủy bỏ hoặc

Thông tin

Đã hỏi 2017-05-09 19:06:10
Đã xem 320 lần
Hoạt động 2017-05-10 15:11:08

Chiến dịch

Kteam - Howkteam Free Education