1.使用普通方法进行传参

class Box:
    def setDimension(self, width, height, depth):
        self.width = width
        self.height = height
        self.depth = depth

    def getVolume(self):
        return self.width * self.height * self.depth

b = Box()
b.setDimension(10, 20, 30)
print(b.getVolume()) //6000

2.使用init方法进行传参

class Box:
    def __init__(self, width, height, depth):
        self.width = width
        self.height = height
        self.depth = depth

    def getVolume(self):
        return self.width * self.height * self.depth
    
b = Box(10, 20, 30)
print(b.getVolume())//6000

3.self方法

self表示 类的实例 ,注意不是类本身

在定义类的方法时,必须要写上,

但是调用的时候,可能 没有。

class Box:
    def __init__(self, width):
        self.width = width
    def getVolume(self):
        return self.width * self.height * self.depth
b = Box(10)  
print(b) //<__main__.Box object at 0x0000000002756F28>
print(b.width) //10

4.__init__.py 文件

指定默认需要导入的模块

当有import导入的时候,就会自动执行里面的函数

一般在文件目录下创建,然后把所有要导入的都放在这个文件里, 其综文件再导入的时候,

直接把init.py当做一个软件包来调用 。

不用再去管目录 了。

该文件不能被删除,是python 的package标识 。

可以在里面定义 __all__来进行默认导入

logger = logging.getLogger('jobs')

from config import config
from .bean import Bean
from .bean_app import BeanApp
from .sign_jr import SignJR
from .daka_app import DakaApp
from .double_sign import DoubleSign
from .data_station import DataStation

__all__ = ['jobs_all', 'logger']

jobs_mobile = [DakaApp, BeanApp, DataStation]
jobs_web = [Bean, SignJR]
jobs_all = jobs_mobile + jobs_web + [DoubleSign]

在main.py中如果导入可以

from job import jobs_all

参考:https://blog.csdn.net/yucicheung/article/details/79445350

5.form xxx import name

从xxx文件中导入名字为name的类,比如如下

from .bean_app import BeanApp

表示从当前目录 下的 bean_app.py中导入 BeanApp的class

6.super函数

super() 函数是用于调用父类(超类)的一个方法。

参考

class Parent(object):
    def __init__(self):
        self.parent = 'I\'m the parent.'
        print('Parent')
    def bar(self, message):
        print("%s from Parent" % message)
class Child(Parent):
    def __init__(self):
        # super(Child,self) 首先找到 Child 的父类(就是类 Parent),然后把类 Child 的对象转换为类 Parent 的对象
        super(Child, self).__init__()
        print('Child')
    def bar(self, message):
        super(Child, self).bar(message)
        print('Child bar fuction')
        print(self.parent)
if __name__ == '__main__':
    a = Child()
    a.bar('HelloWorld')
    

结果

D:\Programs\Python\Python37\python.exe E:/me/test/testSupper.py
Parent
Child
HelloWorld from Parent
Child bar fuction
I'm the parent.

本文由 hcb 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论