面向对象

分析类 创建一个对象

类是对象的模块
对象是类的具体实例

class Person():
    def __init__(self,name):
        self.name = name

class Gun():
    def __init__(self,name):
        self.name = name

class DanJia():
    def __init__(self,count):
        self.count = count

class ZiDan():
    def __init__(self,name,sh):
        self.name = name
        self.sh = sh
laowang = Person("老王")
M4 = Gun("M416")
dj = DanJia(40)
for i in range(40):
    zd = ZiDan("5.56",5)

*类的魔法方法 共有四种

init() 创建对象,并返回引用
str() 初始化属性
del() 打印对象调用,有返回值
new() 删除对象调用

私有属性和方法用两个下划线来表示

*私有属性

class Dog():
    def __init__(self):
        self.name = ""
        self.__age = 0#私有属性
    
    def sleep(self):
        print("sleep")

    def setAge(self,age):
        if age > 15 or age < 1:
            print("年龄不符合")
        else:
            self.__age = age

    def getAge(self):#公有方法
        return self.__age


hsq = Dog()
#print(hsq.__age)#不能直接获取了
#print(hsq.getAge())#必须通过共有方法获取

#hsq.__age = 100#就是一个普通属性
hsq.setAge(10)
print(hsq.getAge())

*私有方法

class QQ():
   
    def __openvip(self):
        print("开会员成功")

    def checkqq(self,money):
        if money > 10:
            self.__openvip()
        else:
            print("不能开")
         


qq = QQ()
qq.checkqq(12)
#qq.openvip()

qq1 = QQ()
qq1.checkqq(10)

单继承和多继承

*单继承

class Animal():
    pass


class Cat(Animal):
    def __init__(self,name):
        self.name = name

class Dog(Animal):
    def __init__(self,name):
        self.name = name


bsm = Cat("波斯猫")
print(bsm.name)

wc = Dog("旺财")
print(wc.name)

*多继承

class A():
    def __init__(self):
        self.name = 10
        self.age = 20

    def show(self):
        print("heheh A")
class B():
    def show1(self):
        print("哈哈哈")


class C(A,B):
    pass


c = C()
print(c.name)
print(c.age)
c.show()
c.show1()
print(c.age)
print(C.__mro__)

还有多态和静态的方法

@classmethod 类的方法
@staticmethod 静态方法

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • @(python)[笔记] 目录 前言 在python中,一切皆对象面向对象的程序设计的核心就是对象;面向对象的程...
    CaiGuangyin阅读 604评论 0 5
  • 面向对象介绍 范式编程 编程是程序员用 特定的语法+数据结构+算法 组成的代码来告诉计算机如何执行任务的过程。 一...
    drfung阅读 1,959评论 0 1
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,176评论 6 13
  • 友人说,觉得我这几日兴奋的不行。想想也是,每天都有要做的事情,要上课,要开会,要篮球训练,还想着要春天到了,要出...
    文字摇滚帮阅读 205评论 0 1
  • 1.给一个变量赋值为123,但是输出该变量的值总是为其他数字,请问这是什么问题? PHP 解释器会把以开始的数字当...
    化城阅读 689评论 0 1