class Earth:
    def __init__(self, name, address, amount):
        self.name = name
        self.address = address
        self.__popAmt = amount

    def Rotation(self):
        print("%s正在自转" % (self.name))

    def Revolution(self):
        print("%s正在公转"%(self.name))


e = Earth("地球","太阳系", 100000000000)
# hasattr 查看有没有一个对应的方法或属性
print(hasattr(e,"name"))
print(hasattr(e,"__popAmt"))
print(hasattr(e,"Rotation"))

# 获取对象的属性或方法的值, getattr同 对象.属性 是一样的功能,都是获取属性的值
print(getattr(e,"name"))  # 返回属性的值
func = getattr(e,"Revolution") # 返回函数
func()

print(getattr(e, "abcefdsafd", "没有这个属性")) # 如果没有找到对应的属性,怎返回第三个参数的值

print(e.__dict__)
setattr(e, 'address', '银河系')  # 修改属性的内容
setattr(e, "卫星", "月球")  # 为对象新增一个属性  同 e.卫星= "月球"
print(e.__dict__)


delattr(e,"卫星") # 同del e.卫星
print(e.__dict__)