²é¿´: 869  |  »Ø¸´: 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 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 310Çóµ÷¼Á +3 baibai1314 2026-03-16 3/150 2026-03-21 03:56 by JourneyLucky
[¿¼ÑÐ] 083200ѧ˶321·ÖÒ»Ö¾Ô¸ôßÄÏ´óѧÇóµ÷¼Á +3 innocenceF 2026-03-17 3/150 2026-03-21 02:35 by JourneyLucky
[¿¼ÑÐ] 332Çóµ÷¼Á +4 ydfyh 2026-03-17 4/200 2026-03-21 02:20 by JourneyLucky
[¿¼ÑÐ] 304Çóµ÷¼Á +6 ÂüÊâ2266 2026-03-18 6/300 2026-03-21 00:32 by JourneyLucky
[¿¼ÑÐ] ²ÄÁÏר˶ӢһÊý¶þ306 +7 z1z2z3879 2026-03-18 7/350 2026-03-20 23:48 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸Äϲý´óѧ£¬327·Ö£¬²ÄÁÏÓ뻯¹¤085600 +9 Ncdx123456 2026-03-19 9/450 2026-03-20 23:41 by lovewei0727
[¿¼ÑÐ] 330Çóµ÷¼Á +4 С²Ä»¯±¾¿Æ 2026-03-18 4/200 2026-03-20 23:13 by JourneyLucky
[¿¼ÑÐ] 317Çóµ÷¼Á +5 Éê×ÓÉêÉê 2026-03-19 9/450 2026-03-20 22:26 by JourneyLucky
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤ 322Çóµ÷¼Á +4 È»11 2026-03-19 4/200 2026-03-20 22:12 by luoyongfeng
[¿¼ÑÐ] Ò»Ö¾Ô¸ËÕÖÝ´óѧ²ÄÁÏÇóµ÷¼Á£¬×Ü·Ö315£¨Ó¢Ò»£© +5 sbdksD 2026-03-19 5/250 2026-03-20 22:10 by luoyongfeng
[¿¼ÑÐ] Çóµ÷¼ÁÒ»Ö¾Ô¸ÄϾ©º½¿Õº½Ìì´óѧ289·Ö +3 @taotao 2026-03-19 3/150 2026-03-20 21:34 by JourneyLucky
[¿¼ÑÐ] AÇøÏß²ÄÁÏѧµ÷¼Á +5 ÖÜÖÜÎÞ¼« 2026-03-20 5/250 2026-03-20 21:33 by laoshidan
[¿¼ÑÐ] ±¾ÈË¿¼085602 »¯Ñ§¹¤³Ì ר˶ +19 ²»ÖªµÀ½Ðʲô£¡ 2026-03-15 21/1050 2026-03-20 20:48 by zhukairuo
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©»¯¹¤´óѧ0703»¯Ñ§318·Ö£¬ÓпÆÑо­Àú£¬Çóµ÷¼Á +4 һƿ±½¼×Ëá 2026-03-14 4/200 2026-03-20 20:36 by fen_rao
[¿¼ÑÐ] ²ÄÁÏѧ˶318Çóµ÷¼Á +5 February_Feb 2026-03-19 5/250 2026-03-19 23:51 by 23Postgrad
[¿¼ÑÐ] 085600²ÄÁÏÓ뻯¹¤µ÷¼Á 324·Ö +10 llllkkkhh 2026-03-18 12/600 2026-03-19 14:33 by llllkkkhh
[¿¼ÑÐ] ÉúÎïѧ071000 329·ÖÇóµ÷¼Á +3 ÎÒ°®ÉúÎïÉúÎﰮΠ2026-03-17 3/150 2026-03-18 10:12 by macy2011
[¿¼ÑÐ] [µ¼Ê¦ÍƼö]Î÷ÄϿƼ¼´óѧ¹ú·À/²ÄÁϵ¼Ê¦ÍƼö +3 ¼â½ÇСºÉ 2026-03-16 6/300 2026-03-16 23:21 by ¼â½ÇСºÉ
[¿¼ÑÐ] 321Çóµ÷¼Á +5 ´óÃ×·¹£¡ 2026-03-15 5/250 2026-03-16 16:33 by houyaoxu
[¿¼ÑÐ] Ò»Ö¾Ô¸¹þ¹¤´ó²ÄÁÏ324·ÖÇóµ÷¼Á +5 ãÆÐñ¶« 2026-03-14 5/250 2026-03-14 14:53 by ľ¹Ï¸à
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û