精华内容
参与话题
问答
  • python中用函数初始化类变量

    万次阅读 2012-05-11 15:21:20
    今天在写python的时候遇到一个问题:定义了一个list类型的类变量,但是这个list需要在初始化的时候给它很多的url进去.这样的话我们就需要用倒函数了.结果自己刚开始这样写的: class TianyaSpider(CrawlSpider): ...

    今天在写python的时候遇到一个问题:定义了一个list类型的类变量,但是这个list需要在初始化的时候给它加很多的url进去.这样的话我们就需要用倒函数了.结果自己刚开始这样写的:

    class TianyaSpider(CrawlSpider):

    def init_start():
            url_l = u'http://search.tianya.cn/s?tn=sty&rn=10&pn='
            url_r = u'&s=0&pid=&f=0&h=1&ma=0&q=%B8%DF%BF%BC%D6%BE%D4%B8'
            urls = []
            for i in range(0,75,1):
                tem = url_l + str(i) + url_r
                urls.append(tem)
            return urls


        name = 'tianya'
        allowed_domains = ['tianya.cn']
        start_urls = init_start()


    这样写是成功了,但是总感觉不规范,如果你把函数的定义写在后面那么程序还无法识别该函数.其实我觉得这和java等是一个道理,这个方法中的代码是放在static区的.在第一次加载这个类的时候,这些代码便放了进去.这样的函数好像是不太方便在类的外部去调用的.所以这样做在python中无疑是不规范的,那么我就想换一种表达的方式


    刚开始我一直想在类定义的内部去调用类函数来进行该类变量的初始化,所以代码变成下面这个样子:

     # -*- coding: utf-8 -*-
    from scrapy.selector import HtmlXPathSelector
    from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
    from scrapy.contrib.spiders import CrawlSpider, Rule
    from GaoKao.items import GaokaoItem

    class TianyaSpider(CrawlSpider):
        name = 'tianya'
        allowed_domains = ['tianya.cn']
        start_urls = TianyaSpider.init_start()

        count = 0
        
        
        def parse(self, response):
            hxs = HtmlXPathSelector(response)
            self.count = self.count + 1
            #title = hxs.select("//div[@id='post-title'][@class='fn-clear']/h1[@id='hTitle']//*/text()").extract()
            title = hxs.select('//title/text()').extract()
            item = GaokaoItem()
            item['title'] = title[0]
            
            yield item
        @classmethod
        def init_start(cls):
            url_l = u'http://search.tianya.cn/s?tn=sty&rn=10&pn='
            url_r = u'&s=0&pid=&f=0&h=1&ma=0&q=%B8%DF%BF%BC%D6%BE%D4%B8'
            urls = []
            for i in range(0,75,1):
                tem = url_l + str(i) + url_r
                urls.append(tem)
            return urls
            
        
                
       
    但是报错说TinayaSpider没有定义,你了个妹的,估计是当成对象了,接着我又这样做:

     # -*- coding: utf-8 -*-
    from scrapy.selector import HtmlXPathSelector
    from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
    from scrapy.contrib.spiders import CrawlSpider, Rule
    from GaoKao.items import GaokaoItem

    class TianyaSpider(CrawlSpider):
        @classmethod
        def init_start(cls):
            url_l = u'http://search.tianya.cn/s?tn=sty&rn=10&pn='
            url_r = u'&s=0&pid=&f=0&h=1&ma=0&q=%B8%DF%BF%BC%D6%BE%D4%B8'
            urls = []
            for i in range(0,75,1):
                tem = url_l + str(i) + url_r
                urls.append(tem)
            return urls
        name = 'tianya'
        allowed_domains = ['tianya.cn']
        start_urls = init_start()

        count = 0
        
        
        def parse(self, response):
            hxs = HtmlXPathSelector(response)
            self.count = self.count + 1
            #title = hxs.select("//div[@id='post-title'][@class='fn-clear']/h1[@id='hTitle']//*/text()").extract()
            title = hxs.select('//title/text()').extract()
            item = GaokaoItem()
            item['title'] = title[0]
            
            yield item
        
            
        
                
       
    但是还是报错说不能调用该类方法.

    至今不知道在这里怎么去调用类方法来进行初始化.

    但是我一想,我可以通过实例方法来改变.所以我把代码的结构一改,换成如下:

     # -*- coding: utf-8 -*-
    from scrapy.selector import HtmlXPathSelector
    from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
    from scrapy.contrib.spiders import CrawlSpider, Rule
    from GaoKao.items import GaokaoItem

    class TianyaSpider(CrawlSpider):
        def init_start(cls):
            url_l = u'http://search.tianya.cn/s?tn=sty&rn=10&pn='
            url_r = u'&s=0&pid=&f=0&h=1&ma=0&q=%B8%DF%BF%BC%D6%BE%D4%B8'
            urls = []
            for i in range(0,75,1):
                tem = url_l + str(i) + url_r
                urls.append(tem)
            return urls
        name = 'tianya'
        allowed_domains = ['tianya.cn']
        start_urls = []
        count = 0
        
        def __init__(self):
            CrawlSpider.__init__(self)
            TianyaSpider.start_urls = self.init_start()
        
        def parse(self, response):
            hxs = HtmlXPathSelector(response)
            self.count = self.count + 1
            #title = hxs.select("//div[@id='post-title'][@class='fn-clear']/h1[@id='hTitle']//*/text()").extract()
            title = hxs.select('//title/text()').extract()
            item = GaokaoItem()
            item['title'] = title[0]
            
            yield item
            
        def init_start(self):
            url_l = u'http://search.tianya.cn/s?tn=sty&rn=10&pn='
            url_r = u'&s=0&pid=&f=0&h=1&ma=0&q=%B8%DF%BF%BC%D6%BE%D4%B8'
            urls = []
            for i in range(0,75,1):
                tem = url_l + str(i) + url_r
                urls.append(tem)
            return urls
            
        
                
       
    这样便成功了.不知道为什么这里就识别除了tinayaspider了


    展开全文
  • FreeRTOS变量函数命名规则

    千次阅读 2018-11-09 10:10:38
     在 FreeRTOS 中,定义变量的时候往往会把变量的类型当作前缀变量上,这样的 好处是让用户一看到这个变量就知道该变量的类型。 c : char 型变量. s : short 型变量. l : long型变量. x : portBASE_TYPE...

    1、变量名

            在 FreeRTOS 中,定义变量的时候往往会把变量的类型当作前缀加在变量上,这样的
    好处是让用户一看到这个变量就知道该变量的类型。

    c :  char 型变量.

    s : short 型变量.

    l : long型变量.

    x : portBASE_TYPE类型变量,数据结构,任务句柄,队列句柄等定义的变量名.

    u : 无符号型的前面.

    p : 指针变量的前面.

    例:当我们定义一个无符号的 char 型变量的时候会加一个 uc 前缀,当定义一个
    char 型的指针变量的时候会有一个 pc 前缀。

    2、函数名

            函数名包含了函数返回值的类型、函数所在的文件名和函数的功能,如果是私有的函
    数则会加一个 prv(private)的前缀。

    在函数名中加入了函数所在的文件名,这大大的帮助了用户提高寻找函数定义的效率和了解函数作用的目的,具体的举例如下:

    1.  vTaskPrioritySet()函数的返回值为 void 型,在 task.c这个文件中定义。
    2.  xQueueReceive()函数的返回值为 portBASE_TYPE 型,在 queue.c 这个文件中定义。
    3.  vSemaphoreCreateBinary()函数的返回值为 void 型,在 semphr.h 这个文件中定义。

     

    展开全文
  • 1.字符串1)用双引号表示2)用单引号表示‘\0’例如:‘y’’o’’u’’\0’ == “you”2.标识符 1)由数字 字母 下划线 美元符($)组成 2)开头不能为数字 3)不能为关键字3.变量的初始化与赋值 1)初始化:...

    1.字符串

    1)用双引号表示

    2)用单引号表示加‘\0’

    例如:‘y’’o’’u’’\0’  == “you”


    2.标识符

     1)由数字 字母 下划线 美元符($)组成

     2)开头不能为数字

     3)不能为关键字


    3.变量的初始化与赋值

     1)初始化:变量在定义的时候并赋值        int  b = 10;

     2)赋值: 变量先定义,然后在给变量赋值  int  b; b = 10


    4.变量的理解

     变量名在赋值运算符的左侧,写操作     int a = 5;

     变量名在赋值运算符的右侧,读操作    int b = a + 5;  对a来说就是读操作


    补充:

    ‘\ddd’-----表示以八进制的形式表示一个字符  d的值(0---7)  

      ‘\xab’-----x固定的,表示以十六进制的形式表示一个字符

     例如:   char a = '\101';

                  printf("%d\n",a);     //\101’  --->101八进制 --->十进制 65

    输入函数格式符

    %f  :  以浮点型的格式输入数据,如果输入的是double类型的数据,则以%lf的格式输入

    %s  :  以字符串的格式输入数据

    %o  :  以八进制的格式输入数据

    %x  :  以十六进制的格式输入数据

    %u  :   以无符号的格式输入数据

    输出函数格式符

    %f  :  以浮点型的格式输出数据,

    %lf  

    %s  :  以字符串的格式输出数据

    %o  :  以八进制的格式输出数据

    %x  :  以十六进制的格式输出数据  %X   %#x   %#X

    %u  :   以无符号的格式输出数据

    %p  :  以地址的格式输出数据,地址的格式,---->十六进制格式

    如果需要在输出的十六进制格式的数据前面加0x,只需要加#,例如%#p

    特殊:

    %整数d:控制数据输出的宽度    12345

    整数是正数,表示数据进行右对齐,左补空格    printf("%5d\n",a);
    整数是负数,表示数据进行左对齐,右补空格        printf("%-5d\n",b);

     说明:当数据原有宽度超过修饰数据输出的宽度,此时数据会原样输出

    %.正整数f :修饰实型数据小数部分输出的位数,在保留小数位数的同时会进行四舍五入


    字符输入输出函数

    1)字符输入函数

     函数原型:int getchar(void)

               使用方法:

       char a;

    a = getchar();

    2) 字符输出函数

      函数原型:void putchar(char )

    putchar(字符常量,字符变量,ASCII码值,转义字符)


    输入输出缓冲区数据从键盘进行输入---->输入缓冲区, 系统从缓冲区开始读取数据,当缓冲区有数据,此时不需要从键盘输入,每次读入一次,缓冲区的内容就会少一个




    展开全文
  • 经典SQL语句大全

    热门讨论 2014-12-20 12:00:30
    select name from sysobjects where type='U' // U代表用户 21、说明:列出表里的所有的列名 select name from syscolumns where id=object_id('TableName') 22、说明:列示type、vender、pcs字段,以type字段排列,...
  • select name from sysobjects where type='U' // U代表用户 21、说明:列出表里的所有的列名 select name from syscolumns where id=object_id('TableName') 22、说明:列示type、vender、pcs字段,以type字段排列...
  • 由十进制数,阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为a E n (a为十进制数,n为十进制整数)其值为 a*10,n 如: 2.1E5 (等于2.1*10,5), 3.7E-2 (等于3.7*10,)-2*) 0.5E7 ...
  • 变量作用域

    2019-06-12 10:57:00
    '''有一个全局file_content 的list,在函数内部向其append数据,是可以的,不需要global 修饰,但是当 在函数内部进行对其 赋值操作时,需要用global修饰该全局变量,因为赋值操作默认作为局部变量,对全局变量...
    '''
    有一个全局file_content 的list,在函数内部向其append数据,是可以的,不需要加global 修饰,
    但是当 在函数内部进行对其 赋值操作时,需要用global修饰该全局变量,因为赋值操作默认作为局部变量,
    对全局变量进行赋值修改,需要进行显示global声明
    '''

    lis = ['h','a','u']

    def f1():
    for i in lis:
    print(i)
    print(lis)

    def f2():
    lis.append('k')
    print(lis)

    def f3():
    # lis = [1,3,5]
    # lis.append(lis)
    x = ['a','k']
    global lis
    lis = [d for d in lis if d not in x]
    print(lis)

    f1()
    f2()
    f3()

    转载于:https://www.cnblogs.com/wisir/p/11008293.html

    展开全文
  • 断点看出的梁图片变量也未觉不妥; ![图片说明](https://img-ask.csdn.net/upload/201512/07/1449480058_581941.png) ********************************************************************** ![图片说明]...
  • oracle实验报告

    2019-01-10 19:29:58
    soc_sec_num char(9) U NIQUE, /*内部序列号 foreign key(deptno) references dept(deptno)); 例2 复制一个与emp表的表结构相同的新空表emp2. 可输入如下命令: SQL>create table emp2 as select * from emp where 1...
  • Perl文件相关函数

    2010-10-26 07:49:26
    open函数open函数将文件变量与某文件联系起来,提供访问文件的接口,例如:open(MYVAR, "/u/file"); 如果文件打开成功,则返回非零值,否则返回零。缺省地,open打开文件用以读取其内容,若想打开文件以...
  • 当在写存储过程以及函数时,变量不要跟表字段的名字一样,如果出现这样的情况,如 ... 变量名可适当前缀P_或者V_,或者其他前缀,保证不跟存储过程以及函数所使用的表字段一样。 转载于:htt...
  • cocos2dx update跳跃函数

    2015-03-28 00:09:26
    在update函数中写跳跃函数使主角没帧跳跃一小段位移 可以让跳跃动作看起来更加的自然 加入重力速度等变量 运动更合理首先在主角的初始化代码中进行初始起跳速度和重力加速的初始化(PS.重力速度和初始速度不能用...
  • QML调用Qt_CPP中的变量

    千次阅读 2012-10-05 22:18:02
    本以为会很容易,其实不容易,我尝试着在变量 Q_INVOKABLE 来进行QML调用,但是行不通! 但我想了一个下下策:既然QML可以调用CPP中的函数函数又可以调用变量,那我写一个 返回 变量函数不就可以了。...
  • .net组成 编程工具 执行环境CLR(公共语言运行库) 基类库BCL C# 标识符命名规范:类型与成员名(每个单词首字母大写) 本地变量,方法参数(首单词大写) ...函数成员(方法是特殊的函数) 类型:预定义类...
  • 本软件无毒无后门,明码未加密,代码一目了然! 本代码用于测试学习,请勿用于非法攻击! 下载后可以自己使用抓包软件测试!...Serv-u提权:服务器在装了Serv-u的情况下可以直接提权建FTP帐号与系统用户
  • python2中 默认存为unicode需要再字符串前加u 循环打印每一行 循环打印整个文件内容方式二下面这种同一时间取一行 先定义后执行 函数定义的时候,只检测语法错误,不执行 函数返回值,默认是元组...
  • 在一个作用域scope内共享一些变量,简单来说,就是给变量名前面变量空间名,只限于tf.Variable()的变量 tf.variable_scope() 和tf.name_scope()作用一样,不过包括tf.get_variable()的变量和tf.Variable()的...
  • 复数a+bi,Unicode字符串(字符串前加u),布尔值(Trun,False),空值(None,与其他数据类型比较都返回False),还有一系列字符串处理函数,进制转换函数 运算符:逻辑运算符(and or not),字符串运算符 常用语句:...
  • u-boot-1.1.4修改启动地址

    千次阅读 2019-10-24 19:09:07
    在没有命令行参数启动的时候,此函数可以通过解析环境变量中的默认启动地址,来引导内核。环境变量所在文件include/configs/MPC8548PC.h 也可以通过命令行指定内核启动地址和文件系统地址 下面,将在代码中修...
  • String.raw()方法

    千次阅读 2018-01-18 22:57:08
    String.raw()方法,往往用来充当模板字符串的处理函数,返回一个斜杠都被转义(即斜杠前面再一个斜杠)的字符串,对应于替换变量后的模板字符串。String.raw`Hi\n${2+3}!`;// "Hi\\n5!"String.raw`Hi\u000A!`;// '...
  • js逆向加密方式小结

    2020-06-03 14:14:08
    1、变量名、函数名、参数名等混淆: 把变量名、函数名、参数名等,替换成没有语义词汇 利用JS是Unicode编码做编码混淆 使用十六进制表示 _0x21dd85、\u0072\u006f、\x56\x49\x12\x23(十六进制) 2、eval...
  • 汇编基础,LINUX启动文件...)3.2存储器访问指令3.3压栈和出栈指令3.4跳转指令(跳转函数)3.5算术运算指令(减乘除)3.6逻辑运算指令(与或非) 一,伪操作(定义变量) .byte 定义单字节数据 .short定义双字...
  • B) Test类的对象t可以直接访问month变量,但是不能直接访问day变量,因为day为私有变量,只有类内可以访问。 C) 该程序能通过编译并运行,但是如果想得到输出“I am print in Test”的结果,需要在横线处填写t.show...
  •  原来的代码在链接时了"-pie"选项, 使得链接脚本u-boot.ldsu-boot.bin里多了"*(.rel*)", "*(.dynsym)",(.rel*)", "*(.dynsym)"存放变量函数的地址  使得程序非常大,不利于从NAND启动(重定位之前的启动代码...
  • Python核心编程第二版(中文)

    热门讨论 2015-04-23 16:40:13
    2.19.2 如何访问一个模块函数或访问一个模块变量 2.20 实用的函数 2.21 练习 第3章 Python基础 3.1 语句和语法 3.1.1 注释(#) 3.1.2 继续(\) 3.1.3 多个语句构成代码组(:) 3.1.4 代码组由不同的缩进...
  • C语言编码规范

    2011-12-26 17:00:41
    变量分为取全局变量和局部变量,对于全局变量前缀“g_”来区分。 使用有意义的英语单词,使用大小写分隔,每个单词的第一个字母为大写 标识符种类 书写规范 示 例 函数/过程名/变量 一般标识符 CheckButtonStates ...
  • static 用法

    2012-10-06 22:34:53
    , 但为了限制全局变量/函数的作用域, 函数变量static使得函数成为静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件(所以又称内部函数)。注意此时, 对于外部(全局)变量, ...
  • Python核心编程(中文第二版)

    热门讨论 2009-10-02 12:08:14
     2.19.2 如何访问一个模块函数或访问一个模块变量   2.20 实用的函数   2.21 练习   第3章 Python基础   3.1 语句和语法   3.1.1 注释(#)   3.1.2 继续(\)   3.1.3 多个语句构成代码组...

空空如也

1 2 3 4 5 6
收藏数 114
精华内容 45
关键字:

u函数加变量