²é¿´: 863  |  »Ø¸´: 3
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

glazio

Ìú³æ (СÓÐÃûÆø)

[ÇóÖú] python: ¶à¼¶½á¹¹µÄclass£¬ÈçºÎ¶¨Ò壿

ÏÖÔÚ¼ÆËãÖÐΪÁË·½±ãÐèÒª´´½¨Ò»¸ö×Ô¶¨ÒåÀ࣬ÓÃÓÚ
1. ½á¹¹»¯±£´æÊý¾Ý
2. ͨ¹ýÀàµÄ×Ô¶¨Òå·½·¨£¬Ê¹ÓøýṹÊý¾Ý½øÐмÆËã

·­Á˺ܶà×ÊÁÏ£¬´´½¨ÀàµÄͨʽ¾ùΪ
CODE:
class userClass(object):
    def __init__(self, arg1, arg2):
        self.arg1=arg1
        self.arg2=arg2
    def userClassMethod(self):
        return self.arg1+self.arg2

Å׿ªÀûÓÃǶÌ××ÖµäµÄ·½·¨È¥ÊµÏÖ²»Ì¸£¬Èç¹ûÏÖÔÚÎÒÐèÒª¶¨ÒåÒ»¸öÊý¾Ý½á¹¹ÈçͼËùʾµÄ×Ô¶¨ÒåÀàmyClass£¬²¢Í¨¹ýmy=myClass()Óï¾ä½«ÆäʵÀý»¯²¢¸³Öµ¸ø±äÁ¿my£º


ÄÇô¸ÃÈçºÎ¶¨ÒåmyClass£¬Ê¹µÃÎÒ¿ÉÒԵõ½¸ÃÊý¾Ý½á¹¹ÖеIJ»Í¬ÇøÓòÖµ£¿ÀýÈç
À¶É«·½¿òÖеÄÊý¾ÝΪmy.k1£¬ºìÉ«·½¿òÖеÄÊý¾ÝΪmy.k2.¦¤t1£¬ÂÌÉ«·½¿òÖеÄÊý¾ÝΪmy.kn.¦¤t1[1]¡£

Èç¹û´óÏÉÃÇÓиüºÃµÄÏë·¨ºÍ½¨Ò飬СµÜҲԸϴ¶ú¹§Ìý¡£

[ Last edited by glazio on 2012-9-24 at 13:44 ]
»Ø¸´´ËÂ¥
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

glazio

Ìú³æ (СÓÐÃûÆø)

ÉñÒ»ÑùµÄæôÆï½«¾ü£¬Ã¿´ÎÓöµ½pythonÎÊÌâ×ÜÊÇÄܵõ½libra´óÏɵļ°Ê±°ïÖú£¬·Ç³£¸Ðл£¡
3Â¥2012-09-24 18:57:33
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 4 ¸ö»Ø´ð

libralibra

ÖÁ×ðľ³æ (ÖøÃûдÊÖ)

æôÆï½«¾ü

¡ï ¡ï
xzhdty: ½ð±Ò+2, ллæôÆï½«¾ü 2012-09-24 20:53:06
ÄãÕâ¸ö¿´ÆðÀ´¾ÍÊǸö¾ØÕóµÄlist°¡,¾ØÕóÓÖÊÇlistµÄlist,Òò´ËÄãµÄÊý¾Ý¹é¸ù½áµ×ÊÇlistµÄlistµÄlist,
°´ÕÕϱêºÜºÃȡֵ,pythonÖ§³ÖÁ¬ÐøÏ±ê,ËùÒÔÈç¹ûÄãµÄclassÓÐÒ»¸ödata±äÁ¿±íʾËùÓÐÊý¾Ý,Ò²¾ÍÊǸö¾ØÕóµÄlist,ÄÇô
CODE:
self.k1 = self.data[0]
self.k2.delta_t1 = self.data[1][0][1:]
self.kn.delta_t1[1] = self.data[n-1][0][1]

²»¹ýÈç¹û·ÇÒªÓÃ×Ô¶¨ÒåÀàÒ²¿ÉÒÔ,Èç¹û²»ÏëÓÃnumpyÕâÀà¿â,¿ÉÒÔ×Ô¼ºÐ´Ò»¸ö¾ØÕóÀà(ÆäʵpythonµÄÊý¾Ý½á¹¹listµÄlistºÜºÃÓÃÁË,×Ô¼ºÐ´Õâ¸ö×Ô¶¨Ò徨ÕóÀàÎÞ·ÇÒ²¾ÍÊÇÖØÐ¶¨ÒåÒ»ÏÂ,·½±ã´æÈ¡Êý¾Ý),ÀýÈç
CODE:
class myMat(object):
        """represent a matrix with size (row,col)"""
        def __init__(self, matData):
                self.row = len(matData)         # row number
                self.col = len(matData[0])         # col number
                self.data = matData[:]                # data
                self.rows = self.data                 # rows, can be accessed by index, e.g. self.rows[0]
                self.cols = [[self.rows[i][j] for i in range(self.row)] for j in range(self.col)]                                                # cols, can be accessed by index, e.g. self.cols[0]

        def __repr__(self):
                print 'myMat with size (%d * %d):' % (self.row, self.col)
                for i in range(self.row):
                        for j in range(self.col):
                                print self.rows[i][j],
                        print
                return ''

ÉÏÃæËµ¹ýÁË,ÓÉÓÚlistµÄlistÖ§³ÖÁ¬ÐøÏ±ê,Æäʵ¿ÉÒÔ²»ÓÃÖØÐ¶¨Òåk1,...knºÍkn.delta_tn,Èç¹ûºÜÏëÕâÑùȡֵ,¿ÉÒÔÔÚmyClassÕâ¸öÀàÒ»¿ªÊ¼Ïȵõ½¾ØÕóÁбíµÄ³¤¶È,È»ºóÓÃÑ­»·+execº¯ÊýÀ´Ö¸¶¨ÀàµÄ³ÉÔ±±äÁ¿.×îºóÓÉÓÚself.kn.delta_tnÒѾ­ÊÇÒ»¸ölist,ËùÒÔ¿ÉÒÔÖ±½ÓÓÃself.kn.delta_tn[1]ÕâÖÖ¸ñʽÀ´´æÈ¡sdn,ÕâÑùÄãµÄÀ¶,ºì,ÂÌÊý¾Ý¶¼¿ÉÒÔ´æÈ¡µ½.ÍêÕûµÄ²âÊÔ´úÂë:
CODE:
#! /usr/bin/env python

class myMat(object):
        """represent a matrix with size (row,col)"""
        def __init__(self, matData):
                self.row = len(matData)         # row
                self.col = len(matData[0])         # col
                self.data = matData[:]                # data
                self.rows = self.data                 # rows, can be accessed by index, e.g. self.rows[0]
                self.cols = [[self.rows[i][j] for i in range(self.row)] for j in range(self.col)]                                                # cols, can be accessed by index, e.g. self.cols[0]

        def __repr__(self):
                print 'myMat with size (%d * %d):' % (self.row, self.col)
                for i in range(self.row):
                        for j in range(self.col):
                                print self.rows[i][j],
                        print
                return ''

class myClass(object):
        """a list of myMat, each item is represented as k#"""
        def __init__(self, matList):
                self.length = len(matList)
                self.data = matList[:]
                for i in range(self.length):
                        exec('self.k'+str(i+1)+' = self.data['+str(i)+']')         # blue, k1-kn
                        for j in range(matList[0].row):                                 # red, delta_t1-delta_tn
                                exec('self.k'+str(i+1)+'.delta_t'+str(j+1)+' = self.data['+str(i)+'].rows['+str(j)+'][1:]')

        def __repr__(self):
                print 'myClass of length: %d' % (self.length)
                for i in range(self.length):
                        print 'k%d = ' % (i+1)
                        print self.data[i]
                        for j in range(self.data[i].row):
                                print 'k%d.delta_t%d = ' % (i+1, j+1)
                                exec('print self.k'+str(i+1)+'.delta_t'+str(j+1))
                        print
                return ''

# unit test
if __name__=='__main__':
        mat1 = myMat([[1,2,3],[4,5,6],[7,8,9]])
        mat2 = myMat([[11,22,33],[44,55,66],[77,88,99]])
        mat3 = myMat([[111,222,333],[444,555,666],[777,888,999]])
        myc1 = myClass([mat1,mat2,mat3])
        print mat1
        print mat2
        print mat3
        print myc1


ÔËÐеĽá¹ûÈçÏÂ:
CODE:
myMat with size (3 * 3):
1 2 3
4 5 6
7 8 9

myMat with size (3 * 3):
11 22 33
44 55 66
77 88 99

myMat with size (3 * 3):
111 222 333
444 555 666
777 888 999

myClass of length: 3
k1 =
myMat with size (3 * 3):
1 2 3
4 5 6
7 8 9

k1.delta_t1 =
[2, 3]
k1.delta_t2 =
[5, 6]
k1.delta_t3 =
[8, 9]

k2 =
myMat with size (3 * 3):
11 22 33
44 55 66
77 88 99

k2.delta_t1 =
[22, 33]
k2.delta_t2 =
[55, 66]
k2.delta_t3 =
[88, 99]

k3 =
myMat with size (3 * 3):
111 222 333
444 555 666
777 888 999

k3.delta_t1 =
[222, 333]
k3.delta_t2 =
[555, 666]
k3.delta_t3 =
[888, 999]


[Finished in 0.1s]

matlab/VB/python/c++/Javaд³ÌÐòÇë·¢QQÓʼþ:790404545@qq.com
2Â¥2012-09-24 17:37:31
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

glazio

Ìú³æ (СÓÐÃûÆø)

ÒýÓûØÌû:
2Â¥: Originally posted by libralibra at 2012-09-24 17:37:31
ÄãÕâ¸ö¿´ÆðÀ´¾ÍÊǸö¾ØÕóµÄlist°¡,¾ØÕóÓÖÊÇlistµÄlist,Òò´ËÄãµÄÊý¾Ý¹é¸ù½áµ×ÊÇlistµÄlistµÄlist,
°´ÕÕϱêºÜºÃȡֵ,pythonÖ§³ÖÁ¬ÐøÏ±ê,ËùÒÔÈç¹ûÄãµÄclassÓÐÒ»¸ödata±äÁ¿±íʾËùÓÐÊý¾Ý,Ò²¾ÍÊǸö¾ØÕóµÄlist,ÄÇô
se ...

²»ÖªÎªºÎ£¬ÎÒµãÆÀ·ÖÏë·îËͽð±Ò£¬µ«ÏµÍ³Ìáʾ¡°µ±Ç°»ØÌû²»ÊÇÓ¦Öú»ØÌû£¬Äú²»ÄܶԴ˽øÐнð±Ò½±ÀøÅ¶¡±£¬ÎÞÄÎ֪ͨ°æÖ÷´¦Àí£¬µ«jjdgµÄ»Ø¸´ÊÇ£º

ÄúµÄ·´À¡ÒÑ´¦Àí£º
[·´À¡] python: ¶à¼¶½á¹¹µÄclass£¬ÈçºÎ¶¨Ò壿
[ÀíÓÉ] ±ðÈËÓ¦Öúºó£¬ÎÞ·¨ÆÀ·Ö

[½ð±Ò] 0¸ö½ð±Ò
[Òâ¼û] ÄãÖ±½Ó¸ø½ð±Ò°¡

ÌØ´Ë֪ͨ¡£
4Â¥2012-09-25 12:12:13
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 307Çóµ÷¼Á +9 ÀäóÏ123 2026-03-17 9/450 2026-03-19 22:44 by ѧԱ8dgXkO
[¿¼ÑÐ] 296Çóµ÷¼Á +3 www_q 2026-03-18 6/300 2026-03-19 22:28 by zhq0425
[¿¼ÑÐ] 0817µ÷¼Á +3 ûÓдð°¸_ 2026-03-14 3/150 2026-03-19 09:51 by Xu de nuo
[½Ìʦ֮¼Ò] ½¹ÂÇ +9 Ë®±ùÔÂÔÂÒ°Íà 2026-03-13 13/650 2026-03-19 09:50 by otani
[¿¼ÑÐ] Ò»Ö¾Ô¸»ªÖпƼ¼´óѧ£¬080502£¬354·ÖÇóµ÷¼Á +4 ÊØºòϦÑôCF 2026-03-18 4/200 2026-03-18 22:16 by li123456789.
[¿¼ÑÐ] 354Çóµ÷¼Á +4 Tyoumou 2026-03-18 7/350 2026-03-18 21:45 by Tyoumou
[¿¼ÑÐ] 295Çóµ÷¼Á +3 Ò»Ö¾Ô¸¾©Çø211 2026-03-18 5/250 2026-03-18 17:03 by zhaoqian0518
[¿¼ÑÐ] 299Çóµ÷¼Á +5 ¡÷С͸Ã÷* 2026-03-17 5/250 2026-03-18 11:49 by ¾¡Ë´Ò¢1
[¿¼ÑÐ] ÉúÎïѧ071000 329·ÖÇóµ÷¼Á +3 ÎÒ°®ÉúÎïÉúÎﰮΠ2026-03-17 3/150 2026-03-18 10:12 by macy2011
[¿¼ÑÐ] 0703»¯Ñ§336·ÖÇóµ÷¼Á +6 zbzihdhd 2026-03-15 7/350 2026-03-18 09:53 by zhukairuo
[¿¼ÑÐ] »·¾³¹¤³Ìµ÷¼Á +8 ´ó¿Édigkids 2026-03-16 8/400 2026-03-18 09:36 by zhukairuo
[¿¼ÑÐ] 268Çóµ÷¼Á +6 ¼òµ¥µã0 2026-03-17 6/300 2026-03-18 09:04 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 278Çóµ÷¼Á +5 ÑÌ»ðÏÈÓÚ´º 2026-03-17 5/250 2026-03-18 08:43 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] 268Çóµ÷¼Á +8 Ò»¶¨ÓÐѧÉÏ- 2026-03-14 9/450 2026-03-17 17:47 by laoshidan
[¿¼ÑÐ] 290Çóµ÷¼Á +3 p asserby. 2026-03-15 4/200 2026-03-17 16:35 by wangkm
[¿¼ÑÐ] 283Çóµ÷¼Á +3 Ìý·ç¾ÍÊÇÓꣻ 2026-03-16 3/150 2026-03-17 07:41 by ÈÈÇéɳĮ
[¿¼ÑÐ] 277²ÄÁÏ¿ÆÑ§Ó빤³Ì080500Çóµ÷¼Á +3 ×ÔÓɼå±ý¹û×Ó 2026-03-16 3/150 2026-03-16 14:10 by ÔËÆøyunqi
[¿¼ÑÐ] 0856ר˶279Çóµ÷¼Á +5 ¼ÓÓͼÓÓÍ£¡? 2026-03-15 5/250 2026-03-15 11:58 by 2020015
[¿¼ÑÐ] 22408×Ü·Ö284Çóµ÷¼Á +3 InAspic 2026-03-13 3/150 2026-03-15 11:10 by zhq0425
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤ 323 Ó¢Ò»+Êý¶þ+Îﻯ£¬Ò»Ö¾Ô¸£º¹þ¹¤´ó ±¾È˱¾¿ÆË«Ò»Á÷ +4 ×ÔÓɵÄ_·ÉÏè 2026-03-13 5/250 2026-03-14 19:39 by hmn_wj
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û