Python类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于Python类的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

python 有用的Python代码片段

Python 向 Postman 请求代码片段

python [代码片段]一些有趣的代码#sort

使用 Python 代码片段编写 LaTeX 文档

python 机器学习有用的代码片段