调用settings中的常数

5 篇文章 0 订阅

问题:有一个名为settings.py的用于放置常数的文件,现在有另一个文件需要调用这个文件里的常数,而最终的run.py文件用于执行这个文件
一个文件名为settings.py的代码如下:

import numpy as np

class Settings(object):   #定义放置常数的类

    def __init__(self): 
        self.l_min = 2  
        self.l_max = 140
        self.r = 0.05
        self.delta_r = 0.0501-0.05
        self.fsky = 0.2
        self.skyam = 4.0*np.pi*self.fsky*((180.0*60.0)/np.pi)**2  #arcmin**2
        self.arcmin_to_radian = np.pi/(180.0*60.0)
        self.deg_to_radian = np.pi/(180)
        self.arcmin_to_deg = 1/60 
        self.kB = 1.3806505*10**(-23)  # J/K
        self.h = 6.6260693*10**(-34+9) # J·s, dimension becomes J/GHz by plus 9
        self.c = 299792458
        self.nu1 = 140
        self.nu2 = 220
        self.nu3 = 240          
        self.nu = np.array([self.nu1,self.nu2,self.nu3])

settings.py是一个名为Settings的类,类中定义了很多常数,现在有另一个名为test2.py的文件,这个文件需要使用到settings中的常数,这个时候可以如下:

class FoM():
    def __init__(self,st):   #初始化,其中带有一个参数st(st是settings的简写,下面run会说到)
        self.st = st
    def FoM1(self):               #r/sigma_r
        return self.st.r

这里看到,st是没有定义的,所以这个文件是运行不了的,只是定义了类FoM这个类,是一个子程序
现在要定义一个总的运行程序,称为run.py。代码如下:

from test2 import FoM
from settings import Settings

st = Settings()     #简写
test = FoM(st).FoM1()    #将Settings的所有常数都调入
print(test)

>>> 0.05

run.py调用了程序test2和settings,第三行定义Settings为st,而st放入了FoM中了,所以这个时候参数settings中的常数也就进去了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值