class常用技能 python3

class UserInfo(object):#object 是基类
    company ="Color"#静态属性
    #__slots__ = ("company",'b')#只运行绑定 某个变量
    def __init__(self,name,psw,sarary,money):#绑定某个函数  self 是本身
        self.__name =name
        self.__psw =psw #加上__线无法访问()        self.sarary =sarary
        self.money =money

    def __del__(self):  # 析构函数
        pass
    def print(self):
        print("name:%s Salary:%d Money:%d" %(self.__name,self.sarary,self.money   ))
    @property #特征 能直接访问
    def name(self):
        return self.__name
    @name.setter #给当前方法一个可写的属性
    def name(self,name):
        self.__name =name
    #修改打印效果
    def __str__(self):
        print("UserInfo.__str__")
    #调试打印
    def __repr__(self):
        print("调试的时候输出")

    #遍历class
    def __iter__(self):
        #初始化的时候调用一次 然后 不停的调用next
        return self
    def __next__(self):
        pass
    #下标 和切片
    def __getitem__(self, item):
       if isinstance(item,int):
           return "下标"
       elif isinstance(item,slice):
           return "切片"

    #1w个函数 写好之后发现 需要验证
    def __call__(self):#直接调用对象 user()
        pass
class CheckFoo(object):
    def __init__(self,foo):
        self.__foo =foo
    def __call__(self):
        print("验证")
        self.__foo()


#--------------------------------------
#枚举
from  enum import  Enum,unique
color =Enum('Color',('red','yew','grn','bl'))
print(color)

@unique #去除重复
class Color(Enum):
    RED=1
    YEW=2



#给类绑定一个变量
#user =UserInfo()
#user.name ="Color"
def foo(self):
    print("绑定")
def main():
    user =UserInfo('root','root',8888,555)
    user._UserInfo__name ="被我修改了。。"
    user.print()
    user.company="123" #修改自身对象的静态成员只会作用对象
    UserInfo.company ="root"#修改类的静态成员全部修改(不包括修改过的对象的静态成员)
    print(user.company)
    UserInfo.foo =foo
    print(user.name)
    print(str(UserInfo))

if __name__ =='__main__':
    main()
else:
    print("请从 User启动")


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值