首页 > 其他分享 >类

时间:2023-09-26 15:11:21浏览次数:18  
标签: obj1 name self __ print def

例题:

class People:

  def __init__(self,x,y):

    self.x=x

    self.y=y

  def bmi(self):

    return self.需要的公式.self.y

obj=peile(xx)

print(obj1.bmi())  #他的方法bmi

 

1.先实例化  obj=peile(xx)

 

2..属性 

 

 

 类隐藏:用_ _ 对内不对外

再内部用_ _可以访问,例如:_Foo_ _x

可以控制某个属性操作 不让外界直接用

例如:

class x:

  def __init__(self,name):

    self.name=name

  def get_name(self): #通过该接口可以间接的访问到名字属性

    print(self.__name)

obj=x('egon')

obj.get_name()  #在打印时 若用户不加()调用bmi则只会显示装饰器 不会显示具体数值所以有以下两个案例可以解决 

 

装饰器property(用类去实现)

案例一:

@property

class people:

  def __init__(self,name,weight,height):

    self.name=name

    self.weight=weight

    self.height=height

  @prperty

  def bmi(self):

    return.weight/(self.height**2)

obj1=people('egon',78,1.83)

print(obj1,bmi)

 

案例二:如果想控制某个属性操作①先隐藏:_ _x②开放接口

class people:

  def  _ _init_ _(self,name):

    self._ _name=name

  def get_name(self):

    return self._ _name

  def set_name(self):

    if type(val) is not str:

      print('必须传入str')

      return

    self.__name=val

  def del_name(self):

    print('不让删除')

name=prperty(get.name,set_name,def_name)

obj=people('egon')

 

建议用这个:

class people:

  def  _ _init_ _(self,name):

    self._ _name=name

@property   

  def name(self):  #定义为想让外部使用者的名字

    return self._ _name

@name.setter 

  def name(self,val):    #-------》obj1.name='EGON'

    if type(val) is not str:

      print('必须传入str')

      return

    self.__name=val

@name.deleter

  def name(self):  #def obj1.name

    print('不让删除')

obj1=people('egon')

print(obj1.name)

def add():cq

 

标签:,obj1,name,self,__,print,def
From: https://www.cnblogs.com/97zs/p/17652819.html

相关文章