class ClassName(bases): # bases是基类或者父类
data = value # 定义数据属性,类创建时候就有 # 类属性,类创建时候就有,各个实例都可使用
def method(self, ...): # 定义方法属性, 注意此处第一个参数是self
self.member = value # 实例属性,只被个别的实例所使用
____________________
数据属性 , 类属性 可以通过加self被调用:
例如:
class FirstClass():
spam = 30:
def dispaly(self):
print( self.spam )
____________________
https://blog.csdn.net/qq_42242750/article/details/80515440
先实例化类x = MyClass() ,调用类里面的方法属性 x.f()
class MyClass:
"""一个简单的类实例"""
i = 12345
def f (self):
return 'hello world'
# 实例化类
x = MyClass()
# 访问类的属性和方法
print("MyClass 类的属性 i 为:", x.i )
print("MyClass 类的方法 f 输出为:", x.f() )
______________________
方法属性里面用到了类属性要加self
>>> class Myclass:
... data = 123
... def f(self):
... print( self.data ) # 用的前面的data数据属性,所以需要self.data
...
>>> x= Myclass()
>>> x.data
123
>>> x.f() # 方法被调用,需要加()
123
>>>
______________________
类的内部定义:
>>> class Seconclass:
... data = 'hello secondclass'
... def setdata(self,x): # 设置实例内部数据 参数,不同的类实例设置的参数不一样
... self.str1 = x # str1是实例属性
... def printdata(self):
... print(self.str1)
...
>>> ins = Seconclass()
>>> ins.data
'hello secondclass'
>>> ins.setdata('abcd')
>>> ins.printdata()
abcd
>>> ins2 = Seconclass()
>>> ins2.data
'hello secondclass'
>>> ins2.setdata('xyz')
>>> ins2.printdata()
xyz
在这里 实例 调用类内方法(instance.method)等价与 类(实例, 'xyz' )
ins2.setdata('xyz') = Seconclass( ins2 , 'xyz' )
______________________
构造器 __init__ 在实例化过程直接把参数传递进去
>>> class MyClass():
... data = 'hello world'
... def __init__(self,x):
... self.str1 = x
...
>>> i = MyClass('abcd') # 通过构造器, 实例化过程直接把参数传递进去
>>> i.data
'hello world'
>>> i.str1
'abcd'
______________________
>>> class animal:
... name = 'someone'
... def __init__(self, voice = 'hi'):
... self.voice = voice
... def say(self):
... print(self.voice)
...
>>> tom = animal()
>>> tom.say()
hi
>>> jerry = animal('hello') # 通过构造器, 实例化过程直接把参数传递进去
>>> jerry.say()
hello
>>> class Animal:
... name = 'someone' # 类变量 静态变量
... def __init__(self, voice = 'hi'):
... self.voice = voice # 实例变量
... def saySomthing(self):
... x= 4 #方法内,称作局部变量
... print(self.voice)
...
>>> tom = Animal()
>>> tom.saySomthing()
hi
对类中类变量更改,会直接导致实例的类变量的改变
>>> animal.name = 'zjc'
>>> tom.name
'zjc'
>>> jerry.name
'zjc'
相关知识
Python讲堂 关于类Class的使用说明
Python笔试题
python之面向对象
Python面向对象高级编程——多重继承
Python———面向对象编程
python定义一个dog类 类属性有名字
Python期末作业
python做桌面宠物
案例驱动式Python学习笔记【第六篇】电子宠物
【面向对象学习笔记day03】面向对象基础语法+内置函数+定义简单的类+创建对象+第一个面向对象程序+使用 Cat 类再创建一个对象+方法中的self参数+初始化方法+内置方法和属性+del+str
网址: Python讲堂 关于类Class的使用说明 https://m.mcbbbk.com/newsview316549.html
上一篇: 松狮犬,养的人很少,理由有5个! |
下一篇: 动物医学考编全攻略 |