我有一个具有多个绘图功能的模块,我想有两个颜色主题,一个主题为浅色,另一个为深色。
我说我有两种方法:
def plot_function_1(color_dark='#212121'):
...
def plot_function_2(color_dark='#212121'):
...
感觉有点多余。解决这个问题的最有效方式是什么?我可以在模块COLOR_DARK = '#212121'
中定义一个变量,然后调用:
def plot_function_1(color_dark=COLOR_DARK):
...
答案 0 :(得分:1)
是的,您的想法是正确的。 “常规”是将您的值上调为变量。
如果这是模块级变量,则可以通过将其命名为大写来表示,pep-8将此称为constants
答案 1 :(得分:1)
创建<ItemsControl x:Class="Miotec.PressureMapping.UserControls.BaroLayerContainer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Miotec.PressureMapping.UserControls"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<ItemsControl.Template>
<ControlTemplate TargetType="ItemsControl">
<Grid x:Name="container">
<Viewbox Stretch="Uniform"
Width="{Binding ActualWidth, ElementName=container}"
Height="{Binding ActualHeight, ElementName=container}">
<ItemsPresenter/>
</Viewbox>
</Grid>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Width="{Binding Parametros.Colunas}"
Height="{Binding Parametros.Linhas}"
IsItemsHost="True"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
的颜色并传递所需的颜色。
dict
输出:
color_dict = {'COLOR_DARK': '#212121', 'COLOR_LIGHT': '#121212'}
def plot_function_1(color):
print(color)
plot_function_1(color_dict['COLOR_DARK'])
另一种方法(使用枚举):
#212121
输出:
from enum import Enum
class Color(Enum):
DARK_COLOR = 200
LIGHT_COLOR = 400
DARKER_COLOR = 500
LIGHTER_COLOR = 222
print(Color.DARK_COLOR.name)
print(Color.DARK_COLOR.value)
类似地:
DARK_COLOR
200