str类属性的宏(变量)

str-macros的Python项目详细描述


#str macros

一个极简的python包,允许根据基于字符串的类属性定义宏

wing命令:

```
pip install str macros用于
方便使用google adwords的工具。

让我们定义两个类adbanner和ad campaign:

`` python

姓名,网址,活动:
self.ad_id=ad_id
self.name=name
self.url=url
self.campaign=campaign
`````

,但一个重要的条件是,我们想对用户点击我们的横幅进行一些分析。为此,我们使用utm标签,我们希望banner
url采用以下格式:

``http://test.com/?utm_ad_name=test_ad&u;utm_campaign=test_campaign````

所以,当我们创建广告时,我们指定的不是真正的url,而是一个带有如下
宏的url:


``python
campaign=adcampaign(1,"test campaign")
banner=adbanner(
id=1,
name='banner[banner id]活动[活动名称][随机],
url='http://test.ru/?utm_u name=[banner_u name],
campaign=campaign

``````
因此,我们这里有四个宏:
`````[banner_id],[campaign_name],[banner_name],[random]```我们希望在创建并将信息发送到google时启用它们。


``python
import random

self:self.campaign.name,
"横幅名称":lambda self:self.name,
"随机":lambda self:str(random.randint(1100)),
}


def\uu init(self,ad-id,name,url,campaign):
self.ad-id=ad-id
self.name=name
self.url=url
self.campaign=campaign
```


ok,现在我们有了用于字段(属性)的变量,这些字段(属性)在宏字段中定义,宏映射:每个变量都应该执行的宏。


r要在其中查找模式的属性列表ue to str fields-pattern should
应该在**[]**.




注意:如果在宏映射中指定了一个函数,该函数使用在宏字段中指定的
字段,则您将在无限递归中结束
,因此-不要犯这样的错误。例如:

`` python
宏字段=(
'名称','url'

宏映射={
'横幅名称':lambda self:self.name
危险!
因此:

`` python
campaign=adcampaign(1,'test campaign')
banner=adbanner(
id=1,
name='banner[banner_id]for campaign[ca]mpign_name][random]',
url='http://test.ru/?utm_name=[banner_name],
campaign=campaign


我)
1为竞选测试活动5



adbanner.stop_macros()
print(banbanbanner.name)
并再次禁用

从str_macros import enabled_macros
adbanner.is_macros_enabled()false
with enabled_macros(adbanner):
_宏导入启用宏

@enable_macros(adbanner)
def send_data():
宏在此启用
pass

`````

django


/>dmitry abramov©;

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Eclipse内存分析器(MAT):不显示当前正在运行的进程   java Apache Velocity:转义字符不能作为关联数组键用于PHP   不截断零的java格式十进制输出   在另一个类文件中调用时返回空值的java getter   java集合获取连接   java解析json使用Gson登录系统应用程序强制关闭   java DelferredResult带有两个请求的ajax请求   java可降低功耗,同时应使用无线   java BoxLayout无法共享错误?   java如何使用计时器制作闹钟   java使用OAuth2保护RESTWeb服务:一般原则   java在一个jframe上显示多个图像和按钮