±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 876  |  »Ø¸´: 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µÄ»ØÌû

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

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

ÉñÒ»ÑùµÄæôÆï½«¾ü£¬Ã¿´ÎÓöµ½pythonÎÊÌâ×ÜÊÇÄܵõ½libra´óÏɵļ°Ê±°ïÖú£¬·Ç³£¸Ðл£¡
3Â¥2012-09-24 18:57:33
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢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µÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ glazio µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 308Çóµ÷¼Á +12 ÌÈÈôÆð·çÁËÄØ 2026-04-05 12/600 2026-04-06 10:42 by lqwchd
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©»¯¹¤085600 310·ÖÇóµ÷¼Á +16 0856²ÄÁÏÓ뻯¹¤3 2026-04-04 18/900 2026-04-06 01:54 by BruceLiu320
[¿¼ÑÐ] Ò»Ö¾Ô¸Ö£ÖÝ´óѧ085600Çóµ÷¼Á +17 ³ÔµÄ²»ÉÙ 2026-04-05 20/1000 2026-04-06 00:32 by T¿É¿ÉÎ÷ÀïT
[¿¼ÑÐ] Çóµ÷¼Á +10 Hllºú 2026-04-04 10/500 2026-04-05 20:09 by nepu_uu
[¿¼ÑÐ] ²ÄÁϵ÷¼Á +13 Ò»ÑùYWY 2026-04-03 14/700 2026-04-05 18:20 by À¶ÔÆË¼Óê
[¿¼ÑÐ] Çóµ÷¼Áµ½0856²ÄÁϹ¤³Ì +3 ³Ì9915 2026-04-05 3/150 2026-04-05 18:15 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 359Çóµ÷¼Á22408 +3 123456789qw 2026-03-31 3/150 2026-04-05 10:09 by zhq0425
[¿¼ÑÐ] 266·Ö£¬Ò»Ö¾Ô¸µçÆø¹¤³Ì£¬±¾¿Æ²ÄÁÏ£¬Çó²ÄÁÏרҵµ÷¼Á +11 ÍÛºôºßºôºß 2026-04-01 12/600 2026-04-04 23:17 by ÓÀ×ÖºÅ
[¿¼ÑÐ] 0854Çóµ÷¼Á +4 assdll 2026-04-03 4/200 2026-04-04 22:17 by hemengdong
[¿¼ÑÐ] 298Çóµ÷¼Á +5 zzz£¬£¬r 2026-04-02 8/400 2026-04-04 19:55 by À¶ÔÆË¼Óê
[¿¼ÑÐ] Ò»Ö¾Ô¸Äϲý´óѧ324Çóµ÷¼Á +9 hanamiko 2026-03-30 9/450 2026-04-04 11:04 by Öí»á·É
[¿¼ÑÐ] 281Çóµ÷¼Á +10 aaawhy 2026-04-03 10/500 2026-04-03 21:42 by lbsjt
[¿¼ÑÐ] 11408£¬284·Ö£¬¶þÕ½Õæ³ÏÇóµ÷¼Á +4 12.27 2026-04-02 4/200 2026-04-03 14:14 by dxiaoxin
[¿¼ÑÐ] 319Çóµ÷¼Á +18 Ì«ÈÝÒ×1018 2026-04-01 18/900 2026-04-03 11:18 by linyelide
[¿¼ÑÐ] Ò»Ö¾Ô¸ÏÃÃÅ´óѧ²ÄÁϹ¤³Ìר˶354ÕÒµ÷¼Á£¡£¡£¡ +8 ±´ß±µ±µ 2026-03-30 8/400 2026-04-03 09:41 by hypershenger
[¿¼ÑÐ] һ־Ըɽ¶«´óѧ»¯Ñ§Ó뻯¹¤Ñ§Ôº²ÄÁÏÓ뻯¹¤×¨Ë¶£¬360·ÖÇóµ÷¼Á +4 ²»Ô¸Í¸Â¶ÐÕÃûµÄË 2026-04-02 4/200 2026-04-03 09:29 by ÒÅÍüÏûʧµÄž™
[¿¼ÑÐ] 081200-11408-276ѧ˶Çóµ÷¼Á +3 ´Þwj 2026-04-02 3/150 2026-04-02 15:06 by cal0306
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©¿Æ¼¼´óѧ085601²ÄÁϹ¤³ÌÓ¢Ò»Êý¶þ³õÊÔ×Ü·Ö335Çóµ÷¼Á +8 Ë«ÂíβƦÀϰå2 2026-04-02 9/450 2026-04-02 14:45 by 5896
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©¿Æ¼¼´óѧ085601²ÄÁϹ¤³ÌÓ¢Ò»Êý¶þ³õÊÔ×Ü·Ö335Çóµ÷¼Á +9 Ë«ÂíβƦÀϰå2 2026-04-01 9/450 2026-04-02 12:14 by oooqiao
[¿¼ÑÐ] ʳƷѧ˶362Çóµ÷¼Á +3 xuanxianxian 2026-04-01 3/150 2026-04-01 21:05 by °¡Àî999
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û