Trang trí cho các hành động

Hành động là phương pháp được trang trí bởi sự trở lại của chức năng ATMT.action. Chức năng này có các phương pháp chuyển tiếp nó là ràng buộc để tham số như là đầu tiên và một PRIO ưu tiên optionnal như một tham số thứ hai. Mặc định ưu tiên là 0. Một phương pháp hành động có thể được trang trí nhiều lần để bị ràng buộc vào nhiều quá trình chuyển đổi.

class Example(Automaton):
    @ATMT.state(initial=1)
    def BEGIN(self):
        pass

    @ATMT.state(final=1)
    def END(self):
        pass

    @ATMT.condition(BEGIN, prio=1)
    def maybe_go_to_end(self):
        if random() > 0.5:
            raise self.END()
    @ATMT.condition(BEGIN, prio=2)
    def certainly_go_to_end(self):
        raise self.END()

    @ATMT.action(maybe_go_to_end)
    def maybe_action(self):
        print "We are lucky..."
    @ATMT.action(certainly_go_to_end)
    def certainly_action(self):
        print "We are not lucky..."
    @ATMT.action(maybe_go_to_end, prio=1)
    @ATMT.action(certainly_go_to_end, prio=1)
    def always_action(self):
        print "This wasn't luck!..."

Hai kết quả đầu ra có thể là:

>>> a=Example()
>>> a.run()
We are not lucky...
This wasn't luck!...
>>> a.run()
We are lucky...
This wasn't luck!...

Phương pháp để tình trạng quá tải
Hai phương pháp này là móc để bị quá tải:
Phương pháp parse_args () được gọi với đối số được đưa ra tại __init __ () và chạy (). Sử dụng để parametrize hành vi của máy tự động của bạn.
Phương pháp master_filter () được gọi là mỗi lần một gói tin được ngửi và quyết định nếu nó là thú vị cho các máy tự động. Khi làm việc trên một giao thức cụ thể, đây là nơi mà bạn sẽ đảm bảo các gói tin thuộc về các kết nối bạn đang là một phần của, do đó bạn không cần phải thực hiện tất cả các kiểm tra sự tỉnh táo trong mỗi sự chuyển tiếp.

Comments

Popular posts from this blog

Thiết lập card không dây trên Kali Linux

Monitor mode

Giới thiệu - Scapy