1.類=屬性+方法,其中屬性分為兩種:類屬性、例項屬性
class car():
place = 'china'
def made(self):
self.name='賓士'
print(car.place)#類屬性可以通過類名直接呼叫
#print(car.name)#不能這麼寫,因為例項屬性在方法內定義,不能通過類名直接呼叫,必須先建立物件,再通過物件呼叫方法,然後呼叫方法中的屬性
a=car()#先建立物件
a.made()#對用方法
print(a.name)#呼叫方法中的例項屬性
注意:
1.類屬性是類所有物件共有的乙個屬性,可以通過類或者物件訪問。而例項屬性每個物件都擁有乙個。
2.類屬性可以通過類名直接呼叫,例項屬性在方法內定義,不能通過類名直接呼叫,必須先建立物件,再通過物件呼叫方法,然後呼叫方法中的屬性。
3.類方法中第乙個引數必須是self,self代表的是類的例項化物件
4.必須用class定義類
2.類變數不會被例項物件改變的,必須通過類方法改變
class jingtai(object):
count = 0
ja1 = jingtai()
ja2 = jingtai()
ja2.count = 1
print(ja2.count,ja1.count)
class jingtai(object):
count = 0
def c(self):
self.count=2
return self.count
ja1 = jingtai()
ja2 = jingtai()
ja2.count = 1
print(ja2.count,ja1.count)
print(ja1.c())
print(ja1.count)
1.因為例項屬性在方法中定義,呼叫時不方便,因此定義了建構函式,在建構函式中定義的屬性都稱為例項屬性,呼叫時建立物件,直接用物件.屬性名呼叫即可,因為在建立物件時,自動將物件傳給self
class car():
place = 'china'
def __init__(self):
self.name='賓士'
def made(self):
self.name='賓士,寶馬'
print(car.place)
a=car()#先建立物件
print(a.name)
a.made()
print(a.name)
1.在方法名或者變數名前用__定義,則變為私有,無法在類的外部直接訪問,但是可以通過類的方法去訪問該私有變數的值
class student():
def __init__(self, name, score):
self.__name = name#私有屬性
self.__score = score#私有屬性
def __print_score(self):#私有方法
print('%s: %s' % (self.__name, self.__score))
def change_name(self):
self.__print_score()
return self.__name
b = student('bart simpson', 98)
print(b.change_name())
1、靜態變數和靜態方法都屬於類的靜態成員,它們與普通的成員變數和成員方法不同,靜態變數和靜態方法只屬於定義它們的類,而不屬於某乙個物件。
2、靜態變數和靜態方法都可以通過類名和物件進行訪問。
3.其中,靜態屬性就是類屬性
4..靜態方法:需要通過修飾器@staticmethod
來進行修飾,靜態方法不需要多定義引數
5.如果乙個類的方法在定義的時候,既不需要訪問例項屬性或者呼叫例項方法,也不需要訪問類屬性或者呼叫類方法,可以將其定義為靜態方法。
6.靜態方法由類呼叫
class car():
place='杭州'
@staticmethod
def show_help():
print("查詢汽車資訊")
1.是類所擁有的方法,用@classmethod
來標識其為類方法。對於類方法,第乙個引數必須是類物件,一般以cls
作為第乙個引數,也可以有別的引數。但是第乙個必須是類物件。
2.類方法跟普通的方法區別就是可以直接通過類名.方法名的方式呼叫
class people():
country = 'china'
#類方法,用classmethod來進行修飾,跟普通的方法區別就是可以直接通過類名.方法名的方式呼叫
@classmethod
def getcountry(cls):
return cls.country
1必須用super().__init__(),去繼承父類的屬性
>>> class parent():
def __init__(self,name,age,tall):
self.name=name
self.age=age
self.tall=tall
>>> class child(parent):
def __init__(self,name,age,tall):
super().__init__(name,age,tall)
>>> a=child('zzz',16,180)
>>> a.name
'zzz'
>>> a.age
16>>> a.tall
180
1.若屬性定義了初始值,則不用再提供形參:
>>> class dog():
def __init__(self,name,color):
self.name=name
self.color=color
self.age=6
2.python中不支援方法的過載:即方法名相同,引數型別(引數個數不同)不同的函式,支援子類對父類方法的重寫
3.匯入模組的三種方法:
import math
import math as m
from math import sqrt
零基礎學Python
零基礎學python 1 1 python是一門指令碼語言 2 python的優勢 1 語法和結構比較簡單,易入門 2 能夠跨平台使用 3 應用範圍廣,設計到作業系統 3d動畫 web 雲計算,企業應用等多方面。3 idle 是乙個python shell,類似於windows的cmd視窗 4 pr...
零基礎學python 一
每次學習語言總是要了解其背景python也不例外。首先python的創始人為 guido van rossum 1989年聖誕節期間,在 阿姆斯特丹 guido為了打發聖誕節的無趣,決心開發乙個新的指令碼 解釋程式 做為abc 語言的一種繼承。看看人家外鬼子程式設計師 哎不得不佩服。他在業餘時間開發...
零基礎學Python筆記
alt n 最遠一條語句 alt p 最近一條語句 tab的兩個作用 1 縮排 2 補足 isinstance str1,str 判斷型別 s為字串 s.isalnum 所有字元都是數字或者字母,為真返回 ture,否則返回 false。s.isalpha 所有字元都是字母,為真返回 ture,否則...