Vì vậy, tôi có mã này cho một đối tượng. Đối tượng đó là một động thái mà bạn có thể thực hiện trong một trò chơi của scissor giấy. Bây giờ, đối tượng cần phải là cả số nguyên (để khớp một giao thức) và một chuỗi để thuận tiện cho việc viết và xem.Làm cách nào để tạo mã này Pythonic
class Move:
def __init__(self, setMove):
self.numToName = {0:"rock", 1:"paper",2:"scissors"}
self.nameToNum = dict(reversed(pairing) for pairing in self.numToName.items())
if setMove in self.numToName.keys():
self.mMove=setMove
else:
self.mMove=self.nameToNum.get(setMove) #make it to a number
def defeats(self):
return Move((self.mMove-1)%3)
def losesTo(self):
return Move((self.mMove+1)%3)
def tiesWith(self):
return self
#Operator overloading
def __eq__(A,B):
return A.mMove==B.mMove
def __gt__(A,B):
return A.defeats(B)
def __lt__(A,B):
return A.losesTo(B)
def __ge__(A,B):
return A>B or A==B
def __le__(A,B):
return A<B or A==B
def __str__(self):
return self.numToName.get(self.mMove);
def __int__(self):
return self.mMove;
Bây giờ, tôi mới bắt đầu từ python, đến từ nền C và Java. Một điều lớn trong python là chỉ có một cách chính xác để làm điều gì đó. Một điều khác không đáng lo ngại về loại. Tôi khá lo lắng về loại hình ở đây.
Vì vậy, tôi không chắc chắn cách xử lý đúng các đối tượng này là gì. Hiện tại tôi có một đối tượng là một trong ba loại (hoặc nhiều hơn nhưng tôi không chắc chắn điều đó sẽ làm gì) Có lẽ thay vào đó tôi nên sử dụng các đối tượng của các lớp khác nhau? và làm cho họ đơn? Ngoài ra đối tượng của tôi hiện đang có thể sửa đổi sau khi sáng tạo, đó là một điều xấu trong tâm trí của tôi.
Vì vậy, đây là mã Pythonic, và làm thế nào tôi có thể làm cho nó thanh lịch hơn? (Tôi hình dung đây là một ví dụ tốt để sử dụng, để giúp tôi tìm ra điều gì làm cho mã python tốt. Xin lỗi nếu có vẻ như đã mở một chút)
Nếu bạn muốn understan d thêm về các vấn đề thực tế/trò chơi: http://progcomp.ucc.asn.au/FrontPage Chuyển động là một điều nhỏ tôi chỉ ngẫu nhiên nghĩ rằng tôi có thể muốn tạo một kiểu cho, như là một cách tốt hơn để kìm nén chúng. –