zoukankan      html  css  js  c++  java
  • python 面向对象

    类与对象

    类属性,

    类变量

    调用方式:类名.变量名或者self.__class__.变量名

    实例变量

    调用方式:对象名.变量名或者self.变量名

    类方法,

    属于类的方法默认函数参数是cls,代表类本身,需要@classmethoo作为装饰符

    调用方式:类名.类方法(需要加括号)

    类的私有属性

    类的里面有私有方法和私有属性,私有属性或方法不能在类的外部被访问使用

    私有方法必须有self参数,且把它作为第一个参数.

    这样的做法是为了保证程序的安全性,这就是封装.

    @property的用法与神奇之处

    假设给某个函数装上了这个装饰器,那么就当作伪属性来调用了.

    调用方式:对象.函数(无需加括号)

    类的继承

    一个儿子可以有多个爸爸,并会爸爸的技能.QAQ

    需要手动调用父类构造方法,父类名.__init__(self,变量,变量)

    注意子类的构造变量必须得和父类的构造变量相同,才能把子类的变量,

    传递给父类构造方法.

    super()调用父类方法

    super().父类方法()(调用不想要加self) =  父类.父类方法(self),(需要加self)

    以上那个方法需要参数就写参数,不要需要直接:对象.方法.() .ok.希望我自己看得懂.

    class A:
    #私有方法和私有变量,无法从外部访问,类属性和对象变量都可以伪装成私有变量
    a = 0 #类属性
    def __init__(self,name,age):#构造方法
    self.name = name #对象变量
    self.__age = age #私有变量,只能在内部调用
    A.a += 1 #每创建个实例对象就加1用来统计对象

    def study(self):#属于公有方法,外部内部都能调用:self.方法()
    print("姓名:{},年龄:{}".format(self.name,self.__age))

    def __age1(self): #私有方法,只能在内部调用
    print('师生数量:{}'.format(A.a))

    def hello(self):
    self.__age1() #内部调用方法
    print(self.__age) #内部变量调用
    self.study()
    @property
    def user(self): #有@property装饰器后就伪装成了属性,不用加括号就能调用
    self.hello()
    @classmethod #类方法
    def name(cls): #调用类的变量
    print(cls.a)

    user = A('licheng',19) #创建实例对象
    user.study() #打印学习信息
    user.hello() #调用实例的hello方法,hello方法又调用私有方法
    print(user.name,) #对象调用实例变量和私有变量,
    print(A.a) #访问类变量
    user.user #调用实例伪属性方法
    A.name()#调用类方法
  • 相关阅读:
    javaweb一
    javaweb三、JDBC访问数据库
    Java学习笔记十
    socket qt基础版本
    QT+VS+添加console 解决方案
    QT创建TCP Socket通信
    左值引用与右值引用
    STL 中 map和set的区别
    C++中STL哈希表介绍
    虚函数总结
  • 原文地址:https://www.cnblogs.com/lc1013/p/10300863.html
Copyright © 2011-2022 走看看