yandyand

导航

面向对象3

#:私有属性
#:私有方法
#:共有属性
#:共有方法

class Persion:
def __init__(self,name,age,rmb):
#:这里的属性叫做共有属性
self.name = name
self.age = age
self.rmb = rmb

p = Persion("杨洋",21,3000)
print(p.rmb) #:可以看到,我可以访问共有属性的值

:但如果我不想让共有属性被访问该怎么办 ??

:私有属性
class Persion:
def __init__(self,name,age,rmb):
self.name = name
self.age = age
self.__rmb = rmb #:加了"__"就使共有属性变成了私有属性

p = Persion("杨洋",21,3000)
print(p.__rmb) #:私有属性不可以被外部直接拿来访问





:可以使用这种方式进行访问

class Persion:
def __init__(self,name,age,rmb):
self.name = name
self.age = age
self.__rmb = rmb

def getrmb(self): #:添加一个共有方法 #:共有方法可以访问私有变量
print(self.__rmb)

p = Persion("杨洋",21,3000)
p.getrmb() #:在通过外部的方法 来访问私有的属性






:这样访问私有属性还是有点不安全,我来加一些限制来保证私有属性的安全性
class Persion:
def __init__(self,name,age,rmb):
self.name = name
self.age = age
self.__rmb = rmb

def getrmb(self):
Choise = input("请输入密码>>>")
if Choise == "123": #:添加了if判断 来确保私有变量的安全性
print(self.__rmb)
else:
print("密码错误!")
p = Persion("杨洋",21,3000)
p.getrmb()




:刚刚是查询操作,这次在加一个修改操作
class Persion:
def __init__(self,name,age,rmb):
self.name = name
self.age = age
self.__rmb = rmb

def getrmb(self):
Choise = input("请输入密码>>>")
if Choise == "123":
print(self.__rmb)
else:
print("密码错误!")
def sedrmb(self,rmb): #:创建了一个共有方法,用来修改私有属性
self.__rmb = rmb
p = Persion("杨洋",21,3000)
p.sedrmb(1000)
p.getrmb()




:在玩出一点花样
class Persion:
def __init__(self,name,age,rmb):
self.name = name
self.age = age
self.__rmb = rmb

def getrmb(self):
Choise = input("请输入密码>>>")
if Choise == "123":
print(self.__rmb)
else:
print("密码错误!")

def sedrmb(self,rmb): #:此时的rmb == rmb_1
self.__rmb = rmb #:将rmb值修改为rmb_1的值

def input(self): #:在创建一个方法用来记录我要修改的值
rmb_1 = input("请输入你要修改的金额>>>>>")
self.sedrmb(rmb_1) #:将我输入的值传入到方法"sedrmb"中


p = Persion("杨洋",21,3000)
p.input()
p.getrmb()

posted on 2020-06-20 18:25  yandyand  阅读(233)  评论(0编辑  收藏  举报