Re: [問題] 關於import

看板Python作者 (阿真)時間13年前 (2011/10/29 00:50), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/5 (看更多)
沒用過Django fromwork 有空您可以分享一下使用這個的好處嗎XD 我也蠻想架個網站 目前想使用zope 不過看大家都用Django說 0.0 以上題外話... 下答是我的一點見解 您參考一下 ※ 引述《kalawang (反求諸己)》之銘言: : 大家好,小弟是python新手。 : 這兩天看了一下python的online document加上Django framework來研究網頁 : 不過在Django的online tutorial裡 : 下面這幾行小弟一直看不懂,有人能幫我解釋一下嗎? : from django.db import models : class Poll(models.Model): : question = models.CharField(max_length=200) : pub_date = models.DateTimeField('date published') : class Choice(models.Model): : poll = models.ForeignKey(Poll) : choice = models.CharField(max_length=200) : votes = models.IntegerField() : 問題1) : 就我研究python語法的結果,django.db應該是指在django/db這個資料夾下 : 把models.py這個module import進來。 : 不過我在django/db底下沒看到models.py這個file。只有看到一個models/的資 : 料夾 : 所以import是可以import目錄而不是單純檔案嗎? python提供 module與package 相當於 檔案 與 資料夾 import module 沒什麼大問題 而import package 白話一點僅是 import package資料夾下的 __init__.py module 所以要讓資料夾能被python視為package 其裡面必須要有 __init__.py 這個檔案(空的也可以) 我的認知裡 package算是個方便管理與整理module的東西吧 : 問題2) : 然後看說明是說question是一個class instance, 所以CharField應該就是一個 : class定義。那CharField前面的models代表的是什麼意思? class的class? : 還是說是跟c++ namespace概念類似? models就是package(如果它是一個裡面有 __init__.py 檔案的資料夾的話) package裡有東西 一定是從 __init__.py 檔案裡寫入或是import進來的 當然還有裡面其它的 module 或 package 可以繼續 import... 至於C++...我還是個新手 囧 : 問題3) : 線上說明在測試SQL的API時 : 有一行 : p = Poll(question="What's up?", pub_date=datetime.datetime.now()) : 我不懂這句的語法,Poll是一個class,那裡面應該給了default argument。 : 所以在這個object instance下,p.question是一個string而不是一個 : class instance了嗎? p.pub_date同理也不是一個class instance了? 只看上面的話 p有沒有question是無法決定的 單就語法來看 Poll是class p就是他的instance 括號裡面的的東西是給 Poll初始化instance p時用的變數而已 跟上面你的程式碼Poll裡的question沒有關係 一般來說Poll會有這樣的Method在裡面 def __init__(self,question,pub_date=OOXX,...): self.maybe_a_label = question .... 讓Poll初始化時使用一些變數這樣 可是你上面程式碼沒有 我猜是繼承了models.Model這個class 的 __init__ method 不然那些變數放不進Poll裡 至於class裡面給或不給default應該都可以 視需求而定 : 感謝回答,我是python新手請大家多幫忙。 以上 有錯還請幫忙指正 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.176.140.46 ※ 編輯: KSJ 來自: 180.176.140.46 (10/29 00:57)

10/29 09:51, , 1F
Very clear!! Thanks
10/29 09:51, 1F
文章代碼(AID): #1EgjrmKL (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
1
2
完整討論串 (本文為第 3 之 5 篇):
1
1
1
2
文章代碼(AID): #1EgjrmKL (Python)