Python实现LBCF--实践记录

发布时间:2023-04-03 11:30

知识点记录:

问:Python class如何区分公有和私有?

答:Python并不严格区分public和private,只体现在代码编写规范上:

  • _xxx "单下划线 " 开始的成员变量叫做保护变量,意思是只有类实例和子类实例能访问到这些变量,需通过类提供的接口进行访问;
  • __xxx " 双下划线 " 开始的是私有成员(变量/方法) ,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据;
  • __x__ 前后均有一个“双下划线” 代表python里特殊方法专用的标识,如 __init__()代表类的构造函数。

问:python class如何定义多个构造函数?

答:通过装饰器构造一个类方法,例如:

import time
 
class Date:
    #主构造函数
    def __init__(self, year, month, day):
        self.year = year
        self.month = month
        self.day = day
 
    #可选构造函数
    @classmethod
    def today(cls,td_time): # td_time是一个字典
        return cls(td_time.tm_year, td_time.tm_mon, td_time.tm_mday)

其中,@classmethod的作用是在class内实例化class,而cls参数指代的就是当前所在类;可以看到,可选构造函数其实是类的一个方法,该方法重写/扩展了类的构造函数,本身还是会调用类原始的构造函数;使用类方法的另一个好处就是在继承的时候,保证了子类使用可选构造函数构造出来的类是子类的实例而不是父类的实例。
ref:https://blog.csdn.net/qq_35499060/article/details/82795386

问:Python自定义模块的调用方式?

答:自定义的python模块有两种,一种是把模块写成类,类里面有要调用的方法。另一种写成单独的py文件,没有类,里面全是函数。
法一(定义class):在a.py文件中定义class A,而A包含a1方法,则此时,可以通过如下操作调用自定义模块:

from a import A
t = A() # 创建A的实例
t.a1() # 调用a1方法

法二(定义函数):在a.py文件中,定义了a1、a2等函数,则此时,可以通过如下操作调用自定义模块:

import a
t=a.a1() # 调用a1方法

ref:https://www.it610.com/article/1296020253200949248.htm

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号