²é¿´: 864  |  »Ø¸´: 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

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

ÒýÓûØÌû:
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µÄ»ØÌû
²é¿´È«²¿ 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

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

ÉñÒ»ÑùµÄæôÆï½«¾ü£¬Ã¿´ÎÓöµ½pythonÎÊÌâ×ÜÊÇÄܵõ½libra´óÏɵļ°Ê±°ïÖú£¬·Ç³£¸Ðл£¡
3Â¥2012-09-24 18:57:33
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 0703»¯Ñ§µ÷¼Á +10 ÄÝÄÝninicgb 2026-03-15 14/700 2026-03-19 22:59 by ѧԱ8dgXkO
[¿¼²©] É격26Äê +3 °Ë6°Ë68 2026-03-19 3/150 2026-03-19 19:43 by nxgogo
[¿¼ÑÐ] ÄÜÔ´²ÄÁÏ»¯Ñ§¿ÎÌâ×éÕÐÊÕ˶ʿÑо¿Éú8-10Ãû +4 ÍÑÓ±¶ø³ö 2026-03-16 12/600 2026-03-19 16:17 by ÍÑÓ±¶ø³ö
[¿¼ÑÐ] 324·Ö 085600²ÄÁÏ»¯¹¤Çóµ÷¼Á +3 llllkkkhh 2026-03-18 3/150 2026-03-19 14:22 by houyaoxu
[¿¼ÑÐ] »¯Ñ§Çóµ÷¼Á +3 ÁÙÔó¾³llllll 2026-03-17 4/200 2026-03-19 13:59 by houyaoxu
[¿¼ÑÐ] Ò»Ö¾Ô¸Öк£Ñó²ÄÁϹ¤³Ìר˶330·ÖÇóµ÷¼Á +7 С²Ä»¯±¾¿Æ 2026-03-18 7/350 2026-03-19 10:46 by Linda Hu
[¿¼ÑÐ] 332Çóµ÷¼Á +3 ydfyh 2026-03-17 3/150 2026-03-19 10:14 by ¹¦·ò·è¿ñ
[¿¼ÑÐ] 085601ר˶£¬×Ü·Ö342Çóµ÷¼Á£¬µØÇø²»ÏÞ +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[¿¼ÑÐ] ²ÄÁÏ£¬·ÄÖ¯£¬ÉúÎ0856¡¢0710£©£¬»¯Ñ§ÕÐÉúÀ² +3 Eember. 2026-03-17 9/450 2026-03-18 10:28 by Eember.
[˶²©¼ÒÔ°] ºþ±±¹¤Òµ´óѧ ÉúÃü¿ÆÑ§Ó뽡¿µÑ§Ôº-¿ÎÌâ×éÕÐÊÕ2026¼¶Ê³Æ·/ÉúÎï·½Ïò˶ʿ +3 1ϲ´º8 2026-03-17 5/250 2026-03-17 17:18 by ber´¨cool×Ó
[¿¼ÑÐ] ¶«ÄÏ´óѧ364Çóµ÷¼Á +5 JasonYuiui 2026-03-15 5/250 2026-03-16 21:28 by ľ¹Ï¸à
[¿¼ÑÐ] 326Çóµ÷¼Á +4 ŵ±´¶û»¯Ñ§½±êéê 2026-03-15 7/350 2026-03-16 17:11 by ŵ±´¶û»¯Ñ§½±êéê
[¿¼ÑÐ] 304Çóµ÷¼Á +4 ahbd 2026-03-14 4/200 2026-03-16 16:48 by ÎҵĴ¬Îҵĺ£
[¿¼ÑÐ] Ò»Ö¾Ô¸211 0703·½Ïò310·ÖÇóµ÷¼Á +3 ŬÁ¦·Ü¶·112 2026-03-15 3/150 2026-03-16 16:44 by houyaoxu
[¿¼ÑÐ] 318Çóµ÷¼Á +3 Yanyali 2026-03-15 3/150 2026-03-16 16:41 by houyaoxu
[¿¼ÑÐ] 0703 ÎïÀí»¯Ñ§µ÷¼Á +3 ÎÒ¿ÉÒÔÉϰ¶µÄ¶Ô 2026-03-13 5/250 2026-03-16 10:50 by ÎÒ¿ÉÒÔÉϰ¶µÄ¶ÔÂ
[¿¼ÑÐ] 294Çóµ÷¼Á +3 Zys010410@ 2026-03-13 4/200 2026-03-15 10:59 by zhq0425
[¿¼ÑÐ] 080500£¬²ÄÁÏѧ˶302·ÖÇóµ÷¼ÁѧУ +4 ³õʶ¿ÉÀÖ 2026-03-14 5/250 2026-03-14 21:08 by peike
[¿¼ÑÐ] ¸´ÊÔµ÷¼Á +3 ºôºô£¿~+123456 2026-03-14 3/150 2026-03-14 16:53 by WTUChen
[¿¼ÑÐ] 330Çóµ÷¼Á +3 ?½´¸øµ÷¼Á¹òÁË 2026-03-13 3/150 2026-03-14 10:13 by JourneyLucky
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û