導航:首頁 > 編程語言 > python對象成員變數

python對象成員變數

發布時間:2022-12-13 09:46:48

python怎樣命名變數的

模塊名:
小寫字母,單詞之間用_分割
ad_stats.py

包名:
和模塊名一樣

類名:
單詞首字母大寫
AdStats
ConfigUtil

全局變數名(類變數,在java中相當於static變數):
大寫字母,單詞之間用_分割
NUMBER
COLOR_WRITE

普通變數:
小寫字母,單詞之間用_分割
this_is_a_var

實例變數:
以_開頭,其他和普通變數一樣
_price
_instance_var

私有實例變數(外部訪問會報錯):
以__開頭(2個下劃線),其他和普通變數一樣
__private_var

專有變數:
__開頭,__結尾,一般為python的自有變數,不要以這種方式命名
__doc__
__class__

普通函數:
和普通變數一樣:
get_name()
count_number()
ad_stat()

私有函數(外部訪問會報錯):
以__開頭(2個下劃線),其他和普通函數一樣
__get_name()
————————————————————————————————————————————————————————————————————
文件名
全小寫,可使用下劃線

應該是簡短的、小寫的名字。如果下劃線可以改善可讀性可以加入。如mypackage。
模塊
與包的規范同。如mymole。

總是使用首字母大寫單詞串。如MyClass。內部類可以使用額外的前導下劃線。

函數&方法
函數名應該為小寫,可以用下劃線風格單詞以增加可讀性。如:myfunction,my_example_function。
*注意*:混合大小寫僅被允許用於這種風格已經占據優勢的時候,以便保持向後兼容。
函數和方法的參數
總使用「self」作為實例方法的第一個參數。總使用「cls」作為類方法的第一個參數。
如果一個函數的參數名稱和保留的關鍵字沖突,通常使用一個後綴下劃線好於使用縮寫或奇怪的拼寫。
全局變數
對於from M import *導入語句,如果想阻止導入模塊內的全局變數可以使用舊有的規范,在全局變數上加一個前導的下劃線。
*注意*:應避免使用全局變數
變數
變數名全部小寫,由下劃線連接各個單詞。如color = WHITE,this_is_a_variable = 1
*注意*:
1.不論是類成員變數還是全局變數,均不使用 m 或 g 前綴。
2.私有類成員使用單一下劃線前綴標識,多定義公開成員,少定義私有成員。
3.變數名不應帶有類型信息,因為Python是動態類型語言。如 iValue、names_list、dict_obj 等都是不好的命名。
常量
常量名所有字母大寫,由下劃線連接各個單詞如MAX_OVERFLOW,TOTAL。
異常
以「Error」作為後綴。
縮寫
命名應當盡量使用全拼寫的單詞,縮寫的情況有如下兩種:
1.常用的縮寫,如XML、ID等,在命名時也應只大寫首字母,如XmlParser。
2.命名中含有長單詞,對某個單詞進行縮寫。這時應使用約定成俗的縮寫方式。
例如:
function 縮寫為 fn
text 縮寫為 txt
object 縮寫為 obj
count 縮寫為 cnt
number 縮寫為 num,等。
前導後綴下劃線
一個前導下劃線:表示非公有。
一個後綴下劃線:避免關鍵字沖突。
兩個前導下劃線:當命名一個類屬性引起名稱沖突時使用。
兩個前導和後綴下劃線:「魔」(有特殊用途)對象或者屬性,例如__init__或者__file__。絕對不要創造這樣的名字,而只是使用它們。
*注意*:關於下劃線的使用存在一些爭議。
Python 用下劃線作為變數前綴和後綴指定特殊變數。

_xxx 不能用'from mole import *'導入
__xxx__ 系統定義名字
__xxx 類中的私有變數名

核心風格:避免用下劃線作為變數名的開始。

因為下劃線對解釋器有特殊的意義,而且是內建標識符所使用的符號,我們建議程序員避免用下劃線作為變數名的開始。一般來講,變數名_xxx被看作是「私有的」,在模塊或類外不可以使用。當變數是私有的時候,用_xxx 來表示變數是很好的習慣。因為變數名__xxx__對Python 來說刑厥夂澹雜諂脹ǖ謀淞坑Φ北苊庹庵置綹瘛?br>
"單下劃線" 開始的成員變數叫做保護變數,意思是只有類對象和子類對象自己能訪問到這些變數;
"雙下劃線" 開始的是私有成員,意思是只有類對象自己能訪問,連子類對象也不能訪問到這個數據。

以單下劃線開頭(_foo)的代表不能直接訪問的類屬性,需通過類提供的介面進行訪問,不能用「from xxx import *」而導入;以雙下劃線開頭的(__foo)代表類的私有成員;以雙下劃線開頭和結尾的(__foo__)代表python里特殊方法專用的標識,如 __init__()代表類的構造函數。
特定命名方式
主要是指 __xxx__ 形式的系統保留字命名法。項目中也可以使用這種命名,它的意義在於這種形式的變數是只讀的,這種形式的類成員函數盡量不要重載。如
class Base(object):
def __init__(self, id, parent = None):
self.__id__ = id
self.__parent__ = parent
def __message__(self, msgid):
# …略
其中 __id__、__parent__ 和 __message__ 都採用了系統保留字命名法。

❷ python非成員變數不報錯 BeautifulSoup的對象soup中沒有成員變數b,為什麼不報錯,而是能成功執行

意思是:
此處的top_div是個空值,即在Python中是None,所以是NodeType
對於一個None的值,當然沒有對應的findAll的方法了
(只有正常的,非空的BeautifulSoup類型的變數才有此方法)

所以推出:
soup.find('div', {'id':'a'})
獲得值top_div是空的

原因:
要麼是你處理的html源碼,此處即parser,得到的不是你真正想要的
要麼是,你此處寫的規則,即'div', {'id':'a'},有問題
(後來去該網站看了看其源碼,根本就不存在
類似於

<div id="a">
的源碼,所以很明顯,你此處的規則是寫錯了)

才導致搜索出來的值,是空的。

另外,
針對於你說的:
top_div = soup.find('div', {'id':'a'})
「#注意:返回的是list對象」
我表示很懷疑。
因為本身BeautifulSoup類型變數去find的話,只會返回一個BeautifulSoup的對象
而不會是list。
這點是人家的find函數決定的,決定了返回值的類型不是list而是BeautifulSoup類型的變數。
你為何會說成list???

如果對於BeautifulSoup不熟悉,那可以參考我的教程:
搜:

【教程】Python中第三方的用於解析HTML的庫:BeautifulSoup

即可找到。

❸ python實例成員實例變數

1、語法:

定義:對象.變數名

調用:對象.變數名

2、說明:

(1)首次通過對象賦值為創建,再次賦值為修改

x01=wife()

wife.name="張三" 此時為創建

wife.name="李四" 此時為修改

(2)通過在構造函數__init__中創建

wife("張三",24)

print(w01.name)

(3)、每個對象存儲一份,通過對象地址訪問。

3、作用:描述所有對象的共有數據。

實例方法:

1、語法

定義:def方法名稱(self,參數列表):

方法體

調用:對象地址.實例名稱(參數)

作用:所有對象共享方法。

對象是指構造函數,方法是指形為函數。

'''

class Studons:

def __init__(self,name,xibie,nianling,fenshu):

self.name=name

self.xibie=xibie

self.nianling=nianling

self.fenshu=fenshu

def dayin(self):

print("姓名:%s,性別:%s,年齡:%d,分數:%d"%(self.name,self.xibie,self.nianling,self.fenshu))

#定義函數根據姓名查找每個人的信息。

list01=[Studons("張無忌","女",2,98),

Studons("張老六","男",61,95),

Studons("三豐","男",31,95),

Studons("小麗麗","女",21,93),

]

def cha_name(name):

for item in list01:

if name==item.name:

# print(item.name,item.nianling)

item.dayin()

cha_name("小麗麗")

#2、

def fund_xus(names):

for itme in list01:

if itme.name==names:

return itme

print(fund_xus("小麗麗").name)

#查找所有女同學

def fund_nv(age):

list02 = []

for itme in list01:

if itme.xibie==age:

list02.append(itme)

return list02

ae=fund_nv("女")

for ime in ae:

ime.dayin()

#統計30歲以上的人的數量

def count_stud():

coun=0

for itme in list01:

if itme.nianling>=30:

coun+=1

return coun

print(count_stud())

#將所有學生的成績歸0

def list_0():

for itme in list01:

itme.fenshu=0

#獲取列表中所有人的名字

def pen_name():

name=[]

for itme in list01:

name.append(itme.name)

return name

print(pen_name())

#查找年齡 最大的學生對象

def max_nl():

maxt=list01[0]

for itme in range(len(list01)):

if maxt.nianling<list01[itme].nianling: span=""> </list01[itme].nianling:>

maxt=list01[itme]

return maxt

max_nl().dayin()

❹ python類里的私有變數如何定義

python沒有私有變數,任何定義的變數都是可以直接調用的,但是一般來說,在定義的變數前後加上兩個下劃線,把這樣的變數當成是私有變數,如下代碼所示:

classperson:
def__init__(self):
self.__private__=100
p=person()
print('__private__:',p.__private__)
print('p包含的變數:',dir(p))

輸出:

__private__:100
p包含的變數:['__class__','__delattr__','__dict__','__dir__','__doc__','__eq__','__format__','__ge__','__getattribute__','__gt__','__hash__','__init__','__le__','__lt__','__mole__','__ne__','__new__','__private__','__rece__','__rece_ex__','__repr__','__setattr__','__sizeof__','__str__','__subclasshook__','__weakref__']

❺ python 為什麼要用成員變數

不是python用成員變數,是所有面向對象編程所需要的類裡面要有成員變數。
比如一個人有屬性性別、年齡等,這些描述這個對象的屬性就是類里的成員變數。

❻ python 通過字元串對成員變數賦值

❼ python怎麼查看object 里的成員變數

首先通過一個例子來看一下本文中可能用到的對象和相關概念。

  • #coding:utf-8import inspectprint inspect.ismole(inspect) #Trueprint inspect.isfunction(inspect.isfunction) #Trueprint inspect.isbuiltin(sorted) #Trueprint inspect.isroutine(sorted) #True

  • 對於實現了__call__的類實例,這個方法會返回False。如果目的是只要可以直接調用就需要是True的話,不妨使用isinstance(obj, collections.Callable)這種形式。我也不知道為什麼Callable會在collections模塊中,抱歉!我猜大概是因為collections模塊中包含了很多其他的ABC(Abstract Base Class)的緣故吧:)

  • #coding:utf-8import collectionsclass Dog(object): def __call__(self, name):#實現__call__方法就可以直接調用對象了

  • print 'i am a dog named ' , name


  • dog = Dog()

  • dog('DaHuang')print isinstance(dog, collections.Callable) #Trueprint dog.__class__.__bases__

  • 3.2. 獲取對象信息

  • getmembers(object[, predicate]):這個方法是dir()的擴展版,它會將dir()找到的名字對應的屬性一並返回,形如[(name, value), ...]。另外,predicate是一個方法的引用,如果指定,則應當接受value作為參數並返回一個布爾值,如果為False,相應的屬性將不會返回。使用is*作為第二個參數可以過濾出指定類型的屬性。

  • getmole(object):還在為第2節中的__mole__屬性只返回字元串而遺憾嗎?這個方法一定可以滿足你,它返回object的定義所在的模塊對象。

  • get{file|sourcefile}(object):獲取object的定義所在的模塊的文件名|源代碼文件名(如果沒有則返回None)。用於內建的對象(內建模塊、類、函數、方法)上時會拋出TypeError異常。

  • get{source|sourcelines}(object):獲取object的定義的源代碼,以字元串|字元串列表返回。代碼無法訪問時會拋出IOError異常。只能用於

  • ❽ 初學者怎麼學習Python

    Python是一種計算機程序設計語言。你可能已經聽說過很多種流行的編程語言,比如非常難學的C語言,非常流行的Java語言,適合初學者的Basic語言,適合網頁編程的JavaScript語言等等。

    那Python是一種什麼語言?

    首先,我們普及一下編程語言的基礎知識。用任何編程語言來開發程序,都是為了讓計算機幹活,比如下載一個MP3,編寫一個文檔等等,而計算機幹活的CPU只認識機器指令,所以,盡管不同的編程語言差異極大,最後都得「翻譯」成CPU可以執行的機器指令。而不同的編程語言,干同一個活,編寫的代碼量,差距也很大。

    比如,完成同一個任務,C語言要寫1000行代碼,Java只需要寫100行,而Python可能只要20行。

    所以Python是一種相當高級的語言。

    你也許會問,代碼少還不好?代碼少的代價是運行速度慢,C程序運行1秒鍾,Java程序可能需要2秒,而Python程序可能就需要10秒。

    那是不是越低級的程序越難學,越高級的程序越簡單?表面上來說,是的,但是,在非常高的抽象計算中,高級的Python程序設計也是非常難學的,所以,高級程序語言不等於簡單。

    但是,對於初學者和完成普通任務,Python語言是非常簡單易用的。連Google都在大規模使用Python,你就不用擔心學了會沒用。

    用Python可以做什麼?可以做日常任務,比如自動備份你的MP3;可以做網站,很多著名的網站包括YouTube就是Python寫的;可以做網路游戲的後台,很多在線游戲的後台都是Python開發的。總之就是能幹很多很多事啦。

    Python當然也有不能乾的事情,比如寫操作系統,這個只能用C語言寫;寫手機應用,只能用Objective-C(針對iPhone)和Java(針對Android);寫3D游戲,最好用C或C++。

    如果你是小白用戶,滿足以下條件:

    會使用電腦,但從來沒寫過程序;

    還記得初中數學學的方程式和一點點代數知識;

    想從編程小白變成專業的軟體架構師;

    每天能抽出一個半小時學習。可以看下面的代碼

    learning=input('DoyouwanttolearnPythonnow(YesorNo):')
    a=str(learning)
    ifa=='Yes':
    print('QQ1129834903')
    else:
    print('Thanks!!')

    ❾ Python中類的定義規是什麼

    類的概念:

    類 Class: 用來描述具體相同的屬性和方法的對象的集合。定義了該集合中每個對象所共有的屬性和方法。對象是類的示例。


    類變數:類變數在整個實例化的對象中是公用的。類變數定義在類中且在函數體之外。類變數通常不作為實例變數使用。


    實例變數:定義在方法中的變數,只作用於當前實例的類。


    數據成員:類變數或者實例變數用於處理類及其實例對象的相關數據。


    方法:類中定義的函數。在類內部,使用 def 關鍵字來定義一個方法,與一般函數定義不同,類方法必須包含參數 self, 且為第一個參數,self 代表的是類的實例。


    構造函數:即__init()__,特殊的方法,在對象創建的時候被自動調用。


    析構函數:即__del()__,特殊的方法,在對象被銷毀時被自動調用。


    實例化:創建一個類的實例,類的具體對象。就是將創建的類賦值給另一個變數。理解為賦值即可,a = class(),這個過程,就叫做實例化


    對象:通過類定義的數據結構實例。對象包括兩個數據成員(類變數和實例變數)和方法。


    繼承:即一個派生類(derived class)繼承基類(base class)的欄位和方法。繼承也允許把一個派生類的對象作為一個基類對象對待。例如,有這樣一個設計:一個Dog類型的對象派生自Animal類,這是模擬」是一個(is-a)」關系(例圖,Dog是一個Animal)。


    方法重寫:如果從父類繼承的方法不能滿足子類的需求,可以對其 進行改寫,這個過程叫方法的覆蓋(override),也稱為方法的重寫。

    ————————————————

    原文鏈接:https://blog.csdn.net/f156207495/article/details/81166252

    網頁鏈接

    ❿ Python的類中引用成員變數必須加self嗎

    Python的類中引用成員變數必須加self
    類(class)初始化之後會得到實例(instance)。 self就是用於代表初始化的到的實例。 明確地寫一個self參數,使得類的方法(method)和普通的函數(function)本質上沒有差異,所有的輸入參數都顯示地傳遞到方法/函數當中。 當然作為類的方法,作用的對.

    self是只有在類中才會有的。self在定義類的方法時是必須有的,雖然在調用時不必傳入相應的參數。 但self的名稱並不是一定的,在python中self不是關鍵詞。在初始化函數中可以把self換成任意名字.

    閱讀全文

    與python對象成員變數相關的資料

    熱點內容
    dvd光碟存儲漢子演算法 瀏覽:758
    蘋果郵件無法連接伺服器地址 瀏覽:963
    phpffmpeg轉碼 瀏覽:672
    長沙好玩的解壓項目 瀏覽:145
    專屬學情分析報告是什麼app 瀏覽:564
    php工程部署 瀏覽:833
    android全屏透明 瀏覽:737
    阿里雲伺服器已開通怎麼辦 瀏覽:803
    光遇為什麼登錄時伺服器已滿 瀏覽:302
    PDF分析 瀏覽:486
    h3c光纖全工半全工設置命令 瀏覽:143
    公司法pdf下載 瀏覽:383
    linuxmarkdown 瀏覽:350
    華為手機怎麼多選文件夾 瀏覽:683
    如何取消命令方塊指令 瀏覽:350
    風翼app為什麼進不去了 瀏覽:779
    im4java壓縮圖片 瀏覽:362
    數據查詢網站源碼 瀏覽:151
    伊克塞爾文檔怎麼進行加密 瀏覽:893
    app轉賬是什麼 瀏覽:163