Python day5 模組與包管理

2021-08-19 21:13:35 字數 2941 閱讀 6000

python

php模組和包管理

乙個.py檔案就是乙個模組

為了避免命名衝突可以引入上層目錄作為包進行模組管理

作為包的目錄中必須要有名為

__init__.py的檔案(裡面可以是空的)

該檔案的模組名就是包名

pycharm中右鍵資料夾標記目錄為根**就可以import不報未找到了

自定義模組

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

#模組備註

'a test module'

#作者__author__ = 'zhaohuiqi'

import sys

#模組主體**

def test():

args = sys.argv

if len(args)==1:

print('hello, world!')

elif len(args)==2:

print('hello, %s!' % args[1])

else:

print('too many arguments!')

#設定為命令行時自動執行

if __name__=='__main__':

test()

私有函式

def _function():

pass

外部不需要引用的函式全部定義成private,只有外部需要引用的函式才定義為public

python

phpoop

#類定義

class student(object):

#建構函式

def __init__(self, name, score):

self.name = name

self.score = score

#方法def print_score(self):

print('%s: %s' % (self.name, self.score))

zhq = student("zhaohuiqi",100)

zhq.print_score()

類object

為當前類繼承的類,如果沒有明確指定的類,就都用

object

class student(object):

pass

物件obj = student()

物件屬性繫結

obj.name = 'zhangsan'

構造方法

構造方法可以設定預設必需屬性

def __init__(self,name,age,…):

self.name = name

self.age = age

…類方法

類內部定義的方法第乙個引數固定是

self

,呼叫的時候不需要傳入

python

php類屬性訪問限制

屬性私有化:屬性名前面加

__ #類定義

class student(object):

#建構函式

def __init__(self, name, score):

self.__name = name

self.__score = score

#方法def print_score(self):

print('%s: %s' % (self.__name, self.__score))

zhq = student("zhaohuiqi",100)

zhq.print_score()

修改完成之後__name和__age只能在函式內部訪問

如果想設定外部允許訪問

def get_name(self):

return self.__name

如果想要設定外部允許修改

def set_name(self,name):

self.__name = name

__set

__get

幾種變數

__name__:特殊變數,可以直接訪問

__name:私有變數,只允許類內訪問

_name:約定私有,實際內外都可以訪問

python

php類的繼承

object位置寫入父類即可

class animal(object):

def run(self):

print('animal is running...')

class dog(animal):

def run(self):

print('dog is running...')

def eat(self):

print('eating meat...')

class cat(animal):

def run(self):

print('cat is running...')

繼承可以把父類的所有功能都直接拿過來,這樣就不必重零做起,子類只需要新增自己特有的方法,也可以把父類不適合的方法覆蓋重寫

物件是否屬於某個類:

isinstance(obj,class)

獲取物件資訊

判斷物件型別:type(obj):返回值為類名

物件是否屬於某個類:

isinstance(obj,class)

,一般用這個判斷,第二個引數可以是多個型別

(int,str,…)

獲得乙個物件的所有屬性和方法:dir()

getattr(obj, 'key ',default)

、setattr(obj, 'key ',value)

以及hasattr(obj, 'key ')

類屬性類似於php的靜態屬性

class student(object):

name = 'student'

區別於物件的屬性,不要設定物件的屬性和類的屬性的名稱相同,容易出問題

刻意練習Python DAY5

1.python中沒有字元的概念,單位為1的字串就是單個的字元。2.字串的方法及注釋 方法注釋 capitalize 把字串的第乙個字元改為大寫 casefold 把整個字串的所有字元改為小寫 count sub start end 返回 sub 在字串裡邊出現的次數,start 和 end 引數表...

小白入門python day5 類與例項

物件導向最重要的概念就是類 class 和例項 instance 例項是根據類建立出來的乙個個具體的 物件 每個 物件 都擁有相同的方法,但各自的資料可能不同。在python中,類是通過class關鍵字定義 class mythreadmanager 自定義執行緒池 def init self,th...

python Day5 函式和lambda表示式

1.函式的定義 def 函式名 參數列 函式體return 表示式 不帶表示式的return相當於返回none 例項 帶變數 輸出如下 welcome runoob width 4 height 5 area 20 引數傳遞 變數沒有型別,只是相當於乙個指標。可更改 mutable 與不可更改 im...