限制属性
只能初始化这些规定的属性,不能添加别的属性class Exployee: __slots__=['id','age','name'] def __init__(self,id,age): self.id=id self.age=age def __str__(self): retrun self.id ex=Exployee('001',20) ex.name='tom' print(ex)
私有属性
变量名以双下划线开头,只能在类内部访问,可以采用共有方法访问私有属性class Exployee: nation='china' def __init__(self,id,age): self.__id=id self.__age=age def getId(self): return self.__id#只读 def setId(self,id): self.__id=id#只写 ex01=Exployee('001',20) print(ex01.getId())#得到id ex01.setId('008')#改变id print(ex01.getId())
@property
class Exployee: def __init__(self,id,age) self.__id=id self.__age=age @property def age(self): return self.__age @age.setter def age(self,myage): self.__age=myage ex01=Exployee('001',20) print(ex01.age) ex01.age=22 print(ex01.age)
类方法
class Exployee: nation='china' __acount=0 def __init__(self,id): self.__id=id Exployee.__acount+=1 def __del__(self):#删除 Exployee.__acount-=1 @classmethod def show(cls): return cls.nation @classmethod def acount(cls): return cls.__acount @staticmethod def display(): print('i am Exployee') ex1=Exployee('001') ex2=Exployee('001') ex3=Exployee('001') del ex1#删除ex1 print(Exployee.acount)#输出2
python类的私有属性
猜你喜欢
转载自blog.csdn.net/qq_42650983/article/details/81318568
今日推荐
周排行