Change some public attributes to properties to eliminate potential problems #84
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello,
I'm a beginner but I noticed that there might be a small problem in the PrivateKey class:
In this class, you defined balance, unspents, and transactions as public attributes, but initialized them with zero or vacant list.
If you instantiate a prv key obj without calling get_balance()/get_unspents()/get_transactions() methods, the result of key.balance, key.unspents, key.transactions are all wrong.
This may be misleading and may trigger potential bugs if your package is used without attention because the public attributes look like properties.
A good solution is to make these attributes protected and create their corresponding properties, leaving the interface unchanged while solving the consistency problem, just like the self._address attribute does.