class Person(object):
def __init__(self,name,age,height,weight,money):#使用类创建对象时候自动调用
print("这里是init")
print(name,age,height,weight)
self.__money=money #加__不能被直接访问
self.name=name
self.age=age
self.height=height
self.weight=weight
pass
def run(self):
print(self.__money)
print("run")
def eat(self,food):
print("eat"+food)
#通过内部的方法,去修改私有属性
#通过自定义的方法实现对私有属性的赋值
def setMoney(self,money):
#对内部数据进行修改和数据过滤
if money<0:
money=0
self.__money=money #可以创建内部函数对内部数据进行修改
def getMoney(self):
return self.__money
per=Person("hanmeimei",20,170,55,100000)
per.age=10
print(per.age)
# 如果要让内容的属性不被外部直接访问,就在属性前加两个下划线(__)
#在python在属性加下划线变成私有属性
# per.__money=0
#print(per.__money)#外部使用不能打印 不能够进行修改
per.run()#内部打印能够打印出__money的内部数据 外部无法取值和赋值 可以用内部函数对私有变量进行修改
#私有变量可以通过内部函数进行调取 并进行修改 外部不能进行修改
per.a=100
print(per.a)#添加新属性a
#调用内部函数
per.setMoney(10)
print(per.getMoney())
"""不能直接访问per.__money是因为Python解释把__money变成了
_Person__money变量 _类名__变量名,不同编译器可能存在的解释的变量名不一致
Python中 __XXX__属于特殊变量,可以被直接访问"""
"""_XXX 变量,实例变量 外部可以访问,意思是 可以被访问,但应不要直接访问"""
访问限制
最新推荐文章于 2020-12-30 21:19:54 发布