• 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

  • 相关阅读:
    JavaEE各种Javadoc的下载
    Failed to stop Abandoned connection cleanup thread
    检查Encoding-name是否合法
    flex 实现图片播放 方案一 图片全部预加载放内存
    Example 2
    ncl 实例参考
    flex 动画笔记
    Example 1
    给DBGrid动态赋值后,如何用程序指定某行某列为当前焦点?(100分)
    能详细说一下action:=cafree这句吗?好多书都没说清楚!
  • 原文地址:https://www.cnblogs.com/WeyneChen/p/6670628.html
Copyright © 2020-2023  润新知