<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Lesson15 Individual Assignment
Individual means that you do it yourself. You won't learn to code if you don't struggle for yourself and  write your own code. Remember that while you can discuss the general (algorithmic) way to solve a problem, you should not even be looking at anyone else's code or showing anyone else your code for an individual assignment.
Review the Group Work guidelines on Cavas and/or ask an instructor if you have any questions.
Programming Practice
Be sure to spell all function names correctly - misspelled functions will lose points (and often break anyway since no one is sure what to type to call it). If you prefer showing your earlier, scratch work as you figure out what you are doing, please be sure that you make a final, complete, correct last function in its own cell that you then call several times to test. In other words, separate your thought process/working versions from the final one (a comment that tells us which is the final version would be lovely).
Every function should have at least a docstring at the start that states what it does (see Lesson3 Team Notebook if you need a reminder). Make other comments as necessary.  
Make sure that you are running test cases (plural) for everything and commenting on the results in markdown. Your comments should discuss how you know that the test case results are correct.
part 1
Step1:  Test your code to make sure that the class definition worked.
<ASSISTANT_TASK:>
Python Code:
# Planet class definition at the end of Part 1 
Explanation: Lesson15 Individual Assignment
Individual means that you do it yourself. You won't learn to code if you don't struggle for yourself and  write your own code. Remember that while you can discuss the general (algorithmic) way to solve a problem, you should not even be looking at anyone else's code or showing anyone else your code for an individual assignment.
Review the Group Work guidelines on Cavas and/or ask an instructor if you have any questions.
Programming Practice
Be sure to spell all function names correctly - misspelled functions will lose points (and often break anyway since no one is sure what to type to call it). If you prefer showing your earlier, scratch work as you figure out what you are doing, please be sure that you make a final, complete, correct last function in its own cell that you then call several times to test. In other words, separate your thought process/working versions from the final one (a comment that tells us which is the final version would be lovely).
Every function should have at least a docstring at the start that states what it does (see Lesson3 Team Notebook if you need a reminder). Make other comments as necessary.  
Make sure that you are running test cases (plural) for everything and commenting on the results in markdown. Your comments should discuss how you know that the test case results are correct.
part 1:  Instance Variables and Get Methods
While you should do steps A, B, and C incrementally, you cannot really test each step until the end of this part, except to check that your code runs without an error in a Python cell (shift-enter). Therefore you can just provide the entire class definition at the end of this part, along with your code that tests the methods. We do not need to see your intermediate work for parts A and B. 
A note about names:
It is programming convention that classes have capitalized names and objects (and variables in general) have lowercase names. For example, if we had a very minimal Customer class as shown below:
```python
class Customer:
def __init__(self, name, balance=0.0):
    self.name = name
    self.balance = balance
We would instantiate objects of that class with lowercase identifiers:python
jane = ('Jane', 1000.0)
``
Notice the distinction between the lowercaseidentifier-jane- and the capitalized string - 'Jane' - that is passed in for thenameargument. This situation will also hold true below with thePlanetclass - the name of the planet is Venus (and can be passed as 'Venus') but the name of the object should bevenus`.
A. Define a new class called Planet. (remember the case conventions!) Write a constructor for the class that takes four parameters: self, name (e.g., Mars), radius (of the planet), and mass (of the planet). All these parameters should be required. Be sure to include a docstring that gives the expected units for each parameter.
B.  Add a fifth parameter to the constructor: the number of moons. This last parameter should be optional, and if not given, the default number of moons should be zero.
C.  Add four get methods to the Planet class: get_name, get_radius, get_mass, and get_moons. Be sure to test each of these methods to make sure they work! They should all RETURN values (not print the values).
End of explanation
# code to make sure constructors and get methods all work
Explanation: Test your code to make sure that the class definition worked.
End of explanation
<END_TASK>