Python 类代码编写基础

来源:互联网 发布:centos git 备份 编辑:程序博客网 时间:2024/06/11 22:41

构造函数

写过 c++/ java oop 编程语言的都知道,类编写离不开的就是构造函数

直接上代码

# 有别于其他语言 Object 在 Python 中是 objectclass abc(object):    # 同时 Python 中的 __init__ 构造函数不能有多个,即 Python 函数不能被重载,永远只能存在一个    def __init__(self):  # 无参构造方法        print(0)    # 如果出现一个 __init__ 函数的参数数量是所有 __init__ 参数数量中最多的时候,该 __init__ 覆盖其他所有    def __init__(self, value):  # 带一个参数的构造方法,会将第一种方法覆盖        print(value)    # 解决方法也很简单,使用带默认值的参数    def __init__(self, a=1):  # 如需带参数且需要保留无参构造,只能使用最后一种        print(a)if __name__ == '__main__':    abc()    abc(10)# 输出结果为110

类继承及私有属性与方法

# 类是模块中的属性class Abc:    def __init__(self):        self.__a = 1  # 私有属性    def __abc(self):  # 私有方法        print(self.__a)    @staticmethod    def abc():        print('abc')class Bcd:    @staticmethod    def bcd():        print('bcd')# java 中是不存在多继承的,c++ 有多继承class Cde(Abc, Bcd):    @staticmethod    def cde():        print('cde')    # 重写父类的方法    @staticmethod    def bcd():        print('cde bcd')if __name__ == '__main__':    a = Cde()    a.abc()    a.bcd()    a.cde()# 输出结果abccde bcdcde

运算符重载

# 重载运算符class Abc():    def __init__(self, a):        self.a = a    def __add__(self, b):  # 重载运算符加号,使他模拟字符串拼接,并返回 int 型的数        return int(str(self.a) + str(b.a))    def __and__(self, b):        return 1    def __sub__(self, b):        return Falseif __name__ == '__main__':    print(Abc(1) + Abc(2))    print(Abc(1) - Abc(2))# 输出结果12False

@property 及 __str__

class Rec:    def __init__(self):        self.abc = 1        self.name = 'sdhjf'    @property  # 将该类方法转换成只读属性,同时具备了 getter    def SetAndGetName(self):        return self.name    @SetAndGetName.setter  # 重新实现 setter,该属性又通过这个修改器变为可写属性    def SetAndGetName(self, value):        self._SetAndGetName = value    def __str__(self):  # 使一个类的实例为一个字符串        return str(self.abc) + ' ' + self.name  # 抛弃默认实例if __name__ == '__main__':    a = Rec()    print(a)  # 输出 1 sdhjf    print(a.abc)  # 输出 1    print(a.name)  # 输出 sdhjf    a.SetAndGetName = 'cbas'    print(a.SetAndGetName)
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 叫外卖给差评被打怎么办 发现宿舍被盗后怎么办 知了猴变黑了怎么办 婴儿仙人掌的刺怎么办 仙人掌刺扎进皮肤里怎么办 被仙人掌的小细绒刺扎到怎么办 值机截止了怎么办 社保卡消磁了怎么办 住宾馆没身份证怎么办 社保卡电话错误怎么办 没住过酒店怎么办 上海合规网约车证件怎么办 取票没有身份证怎么办 买车票没有身份证怎么办 登机身份证丢了怎么办 飞机没带身份证怎么办 上飞机没带身份证怎么办 机场没带身份证怎么办 儿童坐飞机没有户口本怎么办 不需要行李托运化妆品怎么办 坐飞机被限制了怎么办 坐飞机没买保险怎么办 飞机起飞时难受怎么办 婴儿坐飞机没座位怎么办 转机行李不直达怎么办 儿童自己坐飞机怎么办手续 两岁宝宝发烧怎么办 网上购票待核验怎么办 老人坐飞机找不到登机口怎么办 儿童不能值机怎么办 飞机上旅客刁难怎么办 飞机上婴儿哭闹怎么办 飞机上婴儿啼哭怎么办 飞机儿童陪护手续怎么办 孕妇感冒鼻子堵怎么办 孕妇用了眼药水怎么办 孕妇用眼药水了怎么办 错过了登机时间怎么办 过了登机时间怎么办 孩子不喜欢做作业怎么办 宝宝腿不一样粗怎么办