zoukankan      html  css  js  c++  java
  • Python类

    创建一个类

    class Person:
        pass
    
    p = Person()
    print(p)
    

    类以class 声明

    self变量

    1. 这个定义与C++的this指针,都是指向对象示例本身,但使用起来是不一样的。
    2. 可以看到函数定义的时候,都要带一个self参数。这是因为python解释器会默认将对象本身作为参数传入函数。比如 ```python class test: def fun(self):
       pass

    p = test() p.fun()

    这里p.fun()实际上会被解释成test.fun(p)。所以若是fun没有带self参数,就会被认为传入一个参数到不带参数的函数,从而报错。
    3. 名字不一定是self,这只是一种约定俗成的方式
    
    ## 实例化对象
    与调用函数类似
    
    ## 使用对象方法
    ```python
    class Line:
        def WhoAmI(self):
            print("I am a line class")
    
    
    p = Line()
    p.WhoAmI()

    方法与C++类似,不同的是,这里的类的成员函数有一个self参数

    init方法

    类似于C++的构造函数,在类被实例化的时候调用。

    class Line:
        x = 0
        y = 0
    
        def __init__(self,x ,y):
            self.x = x
            self.y = y
    
        def showXY(self):
            print("x = %d , y = %d " %(self.x,self.y))
    
    
        def whoAmI(self):
            print("I am a line class")
    
    
    p = Line(1,2)
    p.whoAmI()
    p.showXY()

    私有成员

    以双下划线开始命名的成员变量和成员函数为私有的。

    class Line:
        x = 0
        y = 0
    
        __const  = 10
    
        def __init__(self,x ,y):
            self.x = x
            self.y = y
    
        def showXY(self):
            print("x = %d , y = %d " %(self.x,self.y))
    
    
        def whoAmI(self):
            print("I am a line class")
    
    
    p = Line(1,2)
    p.whoAmI()
    p.showXY()
    print(p.x)
    print(p.y)
    print(p.__const)
    

    这里执行到最后一句时会显示找不到该属性(AttributeError: 'Line' object has no attribute '__const')

    重载、继承

    TODO

  • 相关阅读:
    伪元素:placeholder-shown&&:focus-within
    伪元素:target
    伪元素:focus-within
    MpVue解析
    ESLint在vue中的使用
    vue动态 设置类名
    Java 文件流操作.
    SpringMVC 与 REST.
    基于Nginx和Zookeeper实现Dubbo的分布式服务
    基于Spring的RPC通讯模型.
  • 原文地址:https://www.cnblogs.com/WeyneChen/p/6670628.html
Copyright © 2011-2022 走看看