四 OOP使用__init__()方法创建常量清单

__init__()方法创建常量清单

  此文接上一篇文章:https://www.cnblogs.com/liveforlearn/p/15208631.html

  这里使用花色的初始化作为创建常量对象的一个实例。

  静态常量也正是构成策略或状态的一部分

 

定义花色类初始化常量清单

e.g:

 1 # -*- ecoding: utf-8 -*-
 2 # @ModuleName: constant_list
 3 # @Function: 
 4 # @Author: 甲壳虫~~~
 5 # @Time: 2021/8/31 22:14
 6 #@blog:https://www.cnblogs.com/liveforlearn
 7 
 8 from lott_object_book.chapter1.samplest_demo import *
 9 
10 class Suit:
11     def __init__(self, name, symbol):
12         self.name = name
13         self.symbol = symbol
14 A = AceCard(A, ?)
15 J = FaceCard(J, ?)
16 Q = FaceCard(Q, ?)
17 N = NumberCard(8, ?)
18 cards = [A, J, Q, N]
19 #创建常量清单
20 Club, Diamond, Heart, Spade = Suit(Club, ?), Suit(Diamond, ?), 21                               Suit(Heart, ?), Suit(Spade, ?)
22 A1 = AceCard(A, Spade)
23 J1 = FaceCard(J, Heart)
24 Q1 = FaceCard(Q, Diamond)
25 N1 = NumberCard(8, Club)
26 cards1 = [A1, J1, Q1, N1]
27 
28 for card in cards:
29     print(card.rank, card.suit, card.hard, card.soft)
30 
31 for card in cards1:
32     print(\n, card.rank, card.suit, card.hard, card.soft)
33     print(card.suit.symbol, card.suit.name)

 

输出如下

四 OOP使用__init__()方法创建常量清单

 

 

小结

  创建常量清单,相比于简单的使用一个符号代替花色的实现方式并没有太大的优势。

  这里只是最为一个示例:演示了如果在更复杂的情况下,可能需要创建一组策略或状态模式对象的集合。

  如果把创建好的花色做缓存,构成一个常量池,使得在调用时,对象可以被重用,那么性能将得到很大的提升。

 

  python中的“不可变对象”:

  在python中这些对象,知识概念上的常量,他们仍然是可变的。(花色常量)

  使用额外的代码实现是的这些对象成为完全不可变的可能会更好。

四 OOP使用__init__()方法创建常量清单

上一篇:List、Set和Map的区别


下一篇:字符串 最长公共前缀